angularJs从控制器中过滤

时间:2014-10-05 14:55:51

标签: angularjs angularjs-filter

我的范围内有以下内容

 items: [
{
id: "0",
name: "כיבוי אורות",
roomId: "0",
type: "scenario",
status: 1
},
{
id: "1",
name: "הדלקת אורות",
roomId: "0",
type: "scenario",
status: 1
},
{
id: "0",
name: "תנור מטבח",
roomId: "0",
type: "heater",
status: 0
}]

我想通过控制器中的id和类型过滤它(而不是通过ng-repeat |过滤器)。

感谢分配

阿维

1 个答案:

答案 0 :(得分:1)

如果你想在控制器中按名称和ID进行过滤,你可以使用native filter。查看polyfill以获得对旧版浏览器的支持。

var type = "TypeTOfilter",  id=idToFilter;
$scope.items = items.filter(function(itm){ return itm.id === id && itm.type === type  });

或者你甚至可以在你的控制器中注入``$ filter`,如果你只是想做一次,而不是在ng-repeat中。

.controller('ctrl', ['$scope', 'filterFilter', function($scope, filter){
     //...
     $scope.items = filter(items)({type:type, id:id});
     //....
 }]);

或者你甚至可以做一个for循环过滤掉项目..