请不要误认为这是关于如何在带有注入过滤器的控制器中使用$filter的典型问题。 我的问题有一个细微的差别,即使用定义为$scope属性的非注入过滤器。 例如,如果您有此控制器:
function MyCtrl($scope, $filter)
{
$scope.itemsSource = [
{id:1, name:'John'},
{id:2, name:'Steve'},
{id:'3', name:'Joey'},
{id:4, name:'Mary'},
{id:5, name:'Marylin'}];
$scope.myFilter = function(){
return function(val){
return typeof val.id === 'number'
}
};
$scope.items = $filter('filter')($scope.itemsSource, $scope.myFilter);
};
我需要在使用 $scope.myFilter 函数过滤项目来源的$filter调用中更改什么?
这是一个非工作示例的小提琴。
我不知道
为什么你的过滤器函数中有这种闭包。
如果将其删除并添加参数,则筛选器如下所示,则它可以工作:
$scope.myFilter = function(val){
return typeof val.id === 'number'
};
这是一个更新的小提琴:http://jsfiddle.net/doc6c713/