Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在$filter中使用控制器$scope定义的函数_Angularjs_Angular Filters - Fatal编程技术网

Angularjs 如何在$filter中使用控制器$scope定义的函数

Angularjs 如何在$filter中使用控制器$scope定义的函数,angularjs,angular-filters,Angularjs,Angular Filters,请不要把这误认为是关于如何在带有注入过滤器的控制器中使用$filter的典型问题。我的问题有一点细微差别,那就是使用定义为$scope属性的非注入过滤器。例如,如果您有此控制器: function MyCtrl($scope, $filter) { $scope.itemsSource = [ {id:1, name:'John'}, {id:2, name:'Steve'}, {id:'3', name:'Joey'},

请不要把这误认为是关于如何在带有注入过滤器的控制器中使用$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调用中对filter itemsSource做哪些更改


用一个不起作用的例子。

我不知道为什么在过滤器函数中有这个闭包

如果删除它并添加一个参数,则过滤器的外观如下所示,它将正常工作:

$scope.myFilter = function(val){
    return typeof val.id === 'number' 
};

这里有一个更新的fiddle:

我不知道为什么在过滤器函数中有这个闭包

如果删除它并添加一个参数,则过滤器的外观如下所示,它将正常工作:

$scope.myFilter = function(val){
    return typeof val.id === 'number' 
};

这里有一个更新的fiddle:

这就是当使用| using angular进行过滤时,如何定义用于html的过滤器。谢谢这就是在html中使用| using angular进行过滤时定义过滤器的方式。谢谢