0
我学习AngularJS,并试图将我现有的网站利用AngularJS组件。我有一个过滤器,显示我用于导航的最高级别的链接。我使用它在多个控制器:使用在多个控制器(AngularJS)自定义过滤器
$scope.topLevelLinks = function(link) {
if (link.parent_id == 0) {
return link;
}
};
当我上面添加到每个控制器的代码,它确实我想到底是什么做的,当我把它叫做:
<li data-ng-repeat="link in links | filter: topLevelLinks">
然而,我想将它添加到我的模块,所以我没有把它写在两个控制器和我似乎无法得到它的工作。我没有得到任何错误,它只是不过滤我的链接:
app.factory('NavigationService', ['$http', function($http) {
return {
getLinks: function() {
return $http({
method: 'GET',
url: '/navigation',
headers: {
'Content-Type': 'application/json'
}
});
}
};
}]).filter('topLevelLinks', function() {
return function(link) {
if (link.parent_id == 0) {
return link;
}
};
}).controller('NavigationCtrl', ['$scope', '$http', 'NavigationService', function ($scope, $http, $nav) {
$scope.links = [];
$nav.getLinks().success(function(data) {
$scope.links = data;
});
$scope.hasChildren = function(link) {
return link.children.length > 0;
};
}]).controller('NavigationAdminCtrl', ['$scope', '$http', 'NavigationService', function ($scope, $http, $nav) {
$scope.links = [];
$nav.getLinks().success(function(data) {
$scope.links = data;
});
}]);
任何帮助,我可以得到将不胜感激!
疑难杂症。就像我说的,我对此很新,所以我不知道。你发布的内容是有道理的,我试过了......但由于某种原因,它似乎还没有做任何事情。 – user3144632 2014-11-20 18:32:52
你删除您控制器的范围的功能? – Brocco 2014-11-20 20:07:34