【发布时间】:2016-05-10 20:53:45
【问题描述】:
我有一个过滤器,我想在指令中使用它。 我有一个简单的过滤器,可以在 ng-repeat 指令中正常工作 我不太确定如何在指令链接函数中应用。 我写了下面的指令,将过滤器作为一个函数,这是正确的方法,我该怎么做?还是有更好的方法?
JavaScript
myApp.directive('repeatDirective', ['$filter', function($filter) {
return {
scope: {
'filter': '&?',
'itemList': '='
},
template: "<div ng-repeat='item in itemList'>{{item .name}}</div>",
link: function (scope,element,attrs, ngModelCtrl) {
**// how to filter itemList here???**
}
};
}]);
过滤
$rootScope.collectionFilter= function (transType) {
if($scope.formData_EventDetails.actualPotential){
if($scope.formData_EventDetails.actualPotential=='NM'){
//console.log(transType.tranTypeName.indexOf('Near Miss'));
return transType.tranTypeName.indexOf('Near Miss') >=0 ;
}
else{
return transType.tranTypeName.indexOf('Near Miss') <0 ;
}
}
return true;
};
HTML
<repeat-directive item-list="someObjectCollection" filter="collectionFilter()">
</repeat-directive>
【问题讨论】:
-
最好的方法是在你的应用程序中定义过滤器,然后将其注入指令并以这种方式使用它。然后你可以将它定义为它自己的实体,并在需要的地方使用它
标签: javascript angularjs angularjs-directive angularjs-scope angularjs-filter