在此Angular JS Pagination Fiddle example
中var app = angular.module('myApp', ['ui.bootstrap']);
app.filter('offset', function() {
alert('filter is called');
return function(input, start) {
return input.slice(start);
};})
app.controller('someController', function($scope) {
alert('controller is called');
$scope.countries = [];
$scope.currentPage = 1;
$scope.itemsPerPage = 20;
$scope.maxSize = 20;
$scope.totalItems = 250;
for(var i = 0; i < $scope.totalItems; i++){
$scope.countries[i] = { name: 'country ' + i }
}
});
是否有可能在调用app.controller之前调用app.filter?如果是,我们该怎么做?
答案 0 :(得分:0)
首先,你的标签不正确。您可能将Angular UI Bootstrap作为模块依赖项包含在内,但这纯粹是一个Angular问题,因此您可能需要修复它。
其次,过滤器是对一些数据进行操作的效用函数。它们在您应用时执行。有几种方法可以应用它们:
<div ng-repeat="item in items | myFilter>
或$filter('myFilter')(arguments_to_the_filter);
- 请注意,您需要为此选项注入$ filter服务。如果您在控制器执行之前尝试过滤集合,如果这是一个路由,您可以添加一个注入过滤值的resolve
函数,或者,您可以在控制器中首先应用过滤器
正确的工作流程取决于您的应用程序,但通常情况下,您将依赖项注入控制器,而不依赖于在控制器中加载数据。