从数组指令中删除重复项
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>
我认为指令是不必要的,因为它基本上充当包装器
我有一个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>
我认为指令是不必要的,因为它基本上充当包装器