繁体   English   中英

angularJS全局过滤器模块

[英]angularJS global filter module

我无法使自定义过滤器正常工作。

我有一个全局过滤器模块:

angular.module('globalFilters', []).filter('dateRange', function () {
    return function(item) {
        console.log(item);
        return true;
    }
}); 

这是在创建时注入到我的应用程序中的。 我正在尝试将此应用于ng-repeat:

tr.pointer(ng-repeat="asset in completed | dateRange", ng-animate="'animate'", ng-click="selectAsset(asset);")
    td {{asset.Name}}

但是,添加此过滤器将过滤掉表中的所有assets 为了尝试找出问题,我返回true以使该函数显示所有assets但无法正常工作。

item记录到控制台后,结果似乎是所有assets的数组,因此我想有些问题。

我正在关注本教程https://docs.angularjs.org/tutorial/step_09

谢谢!

您正在过滤数组...因此您的过滤器函数需要返回一个数组。

.filter('dateRange', function () {
    return function(itemArray) {
        if(!itemArray){
            return null
        }else{
             return itemArray.filter(function(item){
                 // conditions of filter
             });
        }            
    }
});

定义自定义过滤器功能时,传递给过滤器的值将替换为从过滤器返回的值,因此您将true替换为item

对于记录输入而不更改输入的过滤器,只需返回输入:

return function(item) {
    console.log(item);

    return item;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM