在AngularJS中添加第二个过滤器而不先破坏第一个过滤器

时间:2015-11-30 17:15:25

标签: javascript angularjs

我正在尝试添加一个过滤器,用“是或否”替换“true,false”返回值。

在我的filters.js文件中,我有一个dotNetDate过滤器来格式化日期,我相信我应该把我的第二个过滤器放在这里但是然后我的第一个过滤器断开了,并且使用它的视图现在是不可见的。如果我再次注释掉我在其可见内容中的内容,那么如何在没有其他内容的情况下添加第二个过滤器的任何帮助?

angular.module('PCAFilters', []).filter('dotNetDate', function () {
return function (input) {
     return moment(input).format("M/D/YYYY");
  };
});

//angular.module('PCAFilters', []).filter('yesNo', function () {
//    return function (input) {
//        return input ? 'Yes' : 'No';
//    };
//});

1 个答案:

答案 0 :(得分:2)

试试这个:

angular.module('PCAFilters', []).filter('dotNetDate', function () {
    return function (input) {
       return moment(input).format("M/D/YYYY");
    };
}).filter('yesNo', function () {
    return function (input) {
        return input ? 'Yes' : 'No';
    };
});

您正在定义模块PCAFilters两次。如果你想获得一个模块,请不要使用[],如下所示:

angular.module('PCAFilters').filter(...);

如果您不想像我建议的那样将它们链接在一起,我会将模块存储在局部变量中,而不是对每个过滤器定义使用angular.module。见下文:

var filtersModule = angular.module('PCAFilters', []);

filtersModule.filter('dotNetDate', function () {
    return function (input) {
       return moment(input).format("M/D/YYYY");
    };
});

filtersModule.filter('yesNo', function () {
    return function (input) {
        return input ? 'Yes' : 'No';
    };
});