如何将过滤器传递到angular指令中,以便在ng-repeat中使用?
How can I pass a filter into an angular directive to be used in an ng-repeat?
我试图建立一个指令,这样我就可以在指令中使用的数据,以及将在ng-repeat中使用的特定过滤器。这行不通,所以我想我解决整个问题的方法是错误的。
如何传入过滤器?或者,我如何预过滤/排序我传入的列表?
(作用域必须是隔离的,因为我想在同一页面上有多个列表)
<!DOCTYPE HTML>
<html ng-app="MyApp">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<script>
var myApp = angular.module('MyApp', []);
myApp.controller('mainPage',function($scope){
$scope.cars = ["Saab","Volvo","BMW"];
});
myApp.directive('carList',function(){
return {
scope: {
listOfCars: '=',
carFilter : '@'
},
restrict: 'E',
replace: 'true',
template: '<table>'
<tr ng-repeat="{{carFilter}}">'
<td>{{car}}</td>'
</tr>'
</table>'
};
});
</script>
</head>
<body ng-controller="mainPage">
<car-list list-of-cars="cars" car-filter='car in listOfCars | orderBy:"toString()"' ></car-list>
</body>
</html>
带有上述代码的Plunker:http://plnkr.co/edit/ipsF15?p=preview
好的,所以我认为这是一个可行的解决方案-而不是传递过滤器,传递过滤列表,像这样:
<!DOCTYPE HTML>
<html ng-app="MyApp">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="angular.min.js"></script>
<script>
var myApp = angular.module('MyApp', []);
myApp.controller('mainPage',function($scope){
$scope.cars = ["Saab","Volvo","BMW"];
});
myApp.directive('carList',function(){
return {
scope: {
listOfCars: '&',
},
restrict: 'E',
replace: 'true',
template: '<table>'
<tr ng-repeat="car in listOfCars()">'
<td>{{car}}</td>'
</tr>'
</table>'
};
});
</script>
</head>
<body ng-controller="mainPage">
<car-list list-of-cars="cars | orderBy:'toString()' | limitTo:2 " ></car-list>
</body>
</html>
感觉不太直观。这是正确的方法吗?
相关文章:
- 在表上使用 ng-repeat 指令
- 在angularjs ng-repeat指令中对对象进行排序
- 如何从 Angular ng-repeat 指令中检索数组中的某些索引
- 使用Angular js ng repeat指令过滤json对象
- AngularJS ng repeat指令,具有复杂的嵌套数据结构和动态键
- 访问ng repeat指令中的DOM
- 如何调用函数以在“ng-repeat”指令中呈现项目
- Angular 什么是在 ng-repeat 指令中访问总对象的最佳方式
- Angularjs ng-click() 不是从 ng-repeat 指令触发的
- ng-repeat指令中的角度选择:如何访问子范围
- AngularJS:如何判断我的控制器是否绑定到我的ng-repeat指令元素?我的数据没有显示
- 推送到数组不会通过ng repeat指令更新视图列表
- AngularJS:ng repeat指令中的条件
- 拆分在ng repeat指令中创建的字符串(ng模型)
- Angular:如何在ng repeat指令中使用自定义函数
- 使用Angular ng repeat指令进行重复时,复选框不起作用
- 如何在自定义指令中使用现有的ng repeat指令
- 将angularjs ng repeat指令与$scope一起使用$broadcast()/$scope$on()
- 带有Custom ng repeat指令的Custom Filter和LimitTo选项
- AngularJS -在ng-repeat指令中使用$setValidity