Я пытаюсь создать директиву разбиения на страницы с помощью angularjs 1.2.15:
Это мое мнение:
<input type="text" ng-model="filter.user">
<input type="number" ng-model="filter.limit" ng-init="filter.limit=5">
<ul>
<li ng-repeat="user in (filteredUsers = (users | orderBy:order:reverse | filter:filter.user ) | limitTo: filter.limit)" ng-click="showDetails(user)">
{{user.id}} / {{user.firstname}} {{user.lastname}}
</li>
</ul>
<div pagination data='filteredUsers' limit='filter.limit'></div>
и вот моя директива разбиения на страницы:
app.directive('pagination', function(){
return {
restrict: 'A',
templateUrl: 'partials/pagination.html',
scope: {
data: '=data',
limit: '=limit'
}
}
})
Все работает отлично, без директивы разбиения на страницы. Однако с моей новой директивой, как только я загружаю страницу, я получаю ошибку $rootScope:infdig
, которую я не понимаю, поскольку директива не делает ничего, чтобы манипулировать данными, которые могут закончиться бесконечным циклом.
В чем проблема и как я могу ее решить? Спасибо!
Update:
Вот контроллер и ресурс.
Контроллер:
usersModule.controller('usersController',
function ($scope, Users) {
function init(){
$scope.users = Users.get();
}
init();
})
Ресурс (получает пользователей как массив из REST API):
app.factory('Users', function($resource) {
return $resource('http://myrestapi.tld/users', null,{
'get': { method:'GET', isArray: true, cache: true }
});
});
Обновление 2
Вот демо: http://plnkr.co/edit/9GCE3Kzf21a7l10GFPmy?p=preview
Просто введите букву (например, "f" ) в левый вход.