[英]Remove duplicates from array directive
我有一個穿上名字的div。 我想刪除陣列中的重復項。 我已經使用filter
做到了這一點,但是我想知道我們如何擴展它來構建directive
。
<div ng-controller="MainController">
<ul>
<li ng-repeat="name in names | unique">
{{name}}
</li>
</ul>
</div>
以下是過濾器代碼。
angular.module('app')
.controller('MainController', ['$scope', function($scope){
$scope.names = ['a','b','c','d','a','c'];
}])
.filter('unique', function(){
return function(names){
var obj = {};
names.forEach(function(name){
obj[name] = null;
})
return Object.keys(obj);
}
})
.directive('unique', function(){
return {
link: function(scope, elem, attr){
}
}
})
我如何建立一個directive
,從我的數組中刪除重復項。
這是我的寫法:
angular.module('app')
.controller('MainController', ['$scope', function($scope){
$scope.names = ['a','b','c','d','a','c'];
}])
.directive('uniqueArray', function(){
return {
restrict: 'E',
scope: {
arr: '='
}
template: '<ul><li ng-repeat="item in unique_arr">{{item}}</li></ul>',
controller: function($scope){
function get_unique(items){
var obj = {};
angular.forEach(items, function(item){
obj[item] = null;
});
return Object.keys(obj);
}
$scope.unique_arr = get_unique($scope.arr);
}
}
})
並在HTML中:
<unique-array arr="names"></unique-array>
我認為指令是不必要的,因為它基本上起包裝器的作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.