javascript - angularJS全局过滤模块

标签 javascript angularjs angularjs-filter angularjs-module

我在使自定义过滤器正常工作时遇到问题。

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

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

这会在创建时注入(inject)到我的应用程序中。 我正在尝试将其应用于 ng-repeat:

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

但是,添加此过滤器将从表中过滤掉所有 Assets 。为了尝试隔离问题,我为显示所有 Assets 的函数返回 true,但它不起作用。

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
             });
        }            
    }
});

关于javascript - angularJS全局过滤模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958408/

相关文章:

javascript - 如果没有值,则将变量设置为 null

javascript - 复选框值始终为 'on'

css - Bootstrap 导航栏下拉菜单在 iphone 上不起作用

angularjs - 更改 AngularJS 数字输入范围

javascript - Titanium 辅助功能订单问题

javascript - 退出前捕获 Electron 窗口的屏幕截图

angularjs - Ag-grid 显示行数

javascript - $filter 不是函数 AngularJS

javascript - Angularjs 日期过滤器将时间毫秒转换为 UTC 不起作用

javascript - Angular - 仅当数组中的对象包含已完成的 :true 时才启用按钮