Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   ng-repeat + href + html5mode (https://javascript.ru/forum/angular/57816-ng-repeat-href-html5mode.html)

ha_sash 21.08.2015 00:07

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 не перезагружая ее целиком. Как это побороть?

ksa 21.08.2015 08:19

ha_sash, примеры нужно делать полные, работающие. И так чтобы можно было посмотреть сут проблемы...

Т.ч. не понятно чем "эти" ссылки отличаются от "тех"...

ha_sash 21.08.2015 10:59

<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: 'Антон'}
    ];

});



--------------------------
В результате получаем несколько ссылок:
Антон
---
Василий
Генадий
Борис
Жорж
Антон

При клике на первого Антона сменится адрес но страница не перезагрузится...
При клике на остальные ссылки страница будет перезагружаться.

Shitbox2 22.08.2015 17:59

Во-первых, лучше использовать ng-href, во-вторых, попробуй target="_self"

ha_sash 24.08.2015 12:52

Про нг хреф я понимаю, спасибо за комментарий, target="_self" прдназначен как раз для обратного эффекта.

Мне нужно чтобы страница не перезагружалась, а таргет как раз и предназначен для того чтобы ангуляр принудительно перезагрузил страницу.


Часовой пояс GMT +3, время: 16:55.