2016-04-15 72 views
2

我有一个简单的例子,我正在展示我的段落,根据独特的年龄过滤出值,但是我得到了未知的提供者错误。怎么样 ?独特的过滤器无法在Angular.js中正常工作

<html> 
<head> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script> 
</head> 
<body ng-app="myApp" ng-controller="myCtrl"> 
    <p ng-repeat="x in persons | unique: 'age'">{{x.name}}</p> 
<script> 
//App declaration 
var app = angular.module('myApp',[]); 
//Controller Declaration 
app.controller('myCtrl',function($scope){ 
    $scope.persons = [{name: "Peter",age:23},{name:"Laila",age:25},{name:"Rosy",age:23}]; 
}); 
</script> 
</body> 
</html> 

enter image description here

+1

角没有联合国ique过滤器。 https://docs.angularjs.org/api/ng/filter –

+0

我几乎可以肯定这是一个angularui过滤器,不知道本地的:) –

+1

角度没有'唯一'过滤器(在https中进行搜索://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js)。尝试使用这些工具https://github.com/a8m/angular-filter – sbedulin

回答

2

你需要注入“ui.directives”和“ui.filters”模块为您的应用

var app = angular.module('myApp',['ui.directive', 'ui.filters']); 

由于ui.directives和ui.filters模块存在于AngularUI,你还需要参考在您的应用程序角ui.js

<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script> 

你完整的代码应该是这个样子

<html> 
<head> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script> 
</head> 
<body ng-app="myApp" ng-controller="myCtrl"> 
    <p ng-repeat="x in persons | unique: 'age'">{{x.name}}</p> 
<script> 
//App declaration 
var app = angular.module('myApp',['ui.directives','ui.filters']); 
//Controller Declaration 
app.controller('myCtrl',function($scope){ 
    $scope.persons = [{name: "Peter",age:23},{name:"Laila",age:25},{name:"Rosy",age:23}]; 
}); 
</script> 
</body> 
</html> 
+0

我不认为你需要'ui.directives'模块在这里,'ui'版本非常过时'v0.4.0 - 2013-02- 15'。这并不意味着'唯一'不会起作用,而不是增加过度依赖,最好只使用过滤器,或者自己写。 – sbedulin

+0

@sbedulin我同意你的意见。我给出了答案,导致问题是为什么未知的提供者错误被抛出。 –

1

,由于独特的过滤网目前可以找到的AngularJs UI utils的一部分。 为了使这项工作,你必须将其作为一个额外的参考在你的模块angular.module('myApp', ['ui', 'ui.filters']);

希望这对你有所帮助。

相关问题