ng-repeat + href + html5mode
Делаю список элементов типа:
<div ng-repeat="item in items track by $index"> <a href="/assortment/view/{{item._id}}">{{item.title}}</a> </div> Проблема в том что ссылки которые созданы в цикле при клике загружают страницу с сервера обычным http запросом а такие же ссылки вне цикла обновляют страницу средствами js не перезагружая ее целиком. Как это побороть? |
ha_sash, примеры нужно делать полные, работающие. И так чтобы можно было посмотреть сут проблемы...
Т.ч. не понятно чем "эти" ссылки отличаются от "тех"... |
<html ng-app='myapp'> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular-route.min.js"> </head> <div ng-controller="ItemController"> <a href="/items/edit/{{anton.id}}">{{anton.title}}</a> <hr/> <div ng-repeat="item in items track by $index"> <a href="/items/edit/{{item.id}}">{{item.title}}</a> </div> </div> </div> </html> var app = angular.module('myapp', ['ngRoute']); console.log(app); app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }); }]); app.controller('ItemController', function($scope) { $scope.anton = {id: 'an', title: 'Антон'}; $scope.items = [ {id: 'va', title: 'Василий'}, {id: 'ge', title: 'Генадий'}, {id: 'bo', title: 'Борис'}, {id: 'go', title: 'Жорж'}, {id: 'an', title: 'Антон'} ]; }); -------------------------- В результате получаем несколько ссылок: Антон --- Василий Генадий Борис Жорж Антон При клике на первого Антона сменится адрес но страница не перезагрузится... При клике на остальные ссылки страница будет перезагружаться. |
Во-первых, лучше использовать ng-href, во-вторых, попробуй target="_self"
|
Про нг хреф я понимаю, спасибо за комментарий, target="_self" прдназначен как раз для обратного эффекта.
Мне нужно чтобы страница не перезагружалась, а таргет как раз и предназначен для того чтобы ангуляр принудительно перезагрузил страницу. |
Часовой пояс GMT +3, время: 16:55. |