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, время: 15:34. |