我正在关注this tutorial并相应地创建了底层自定义过滤器。然而,最后一个导致第一个消失;当您使用truncate
过滤器时,它会出现异常。如何在模块中创建多个过滤器?
angular.module('filters', []).filter('truncate', function () {
return function (text, length, end) {
if (isNaN(length))
length = 10;
if (end === undefined)
end = "...";
if (text.length <= length || text.length - end.length <= length) {
return text;
}
else {
return String(text).substring(0, length-end.length) + end;
}
};
});
angular.module('filters', []).filter('escape', function () {
return function(text) {
encodeURIComponent(text);
};
});
答案 0 :(得分:18)
angular.module('filters', []).filter("truncate", function() {})
.filter("escape", function() {});
答案 1 :(得分:4)
第二个应该使用
声明angular.module('filters').filter(....)
语法。
您使用的语法每次都会创建一个新模块。
答案 2 :(得分:1)
将过滤器分成单个文件的一种方法是创建一个单独需要过滤器的过滤器模块:
// init.js
angular.module('application', ['application.filters'])
// filters.js
angular.module('application.filters', [
'filters.currencyCents',
'filters.percentage',
]);
// percentage.js
angular.module('filters.percentage', []).filter('percentage', function() {
return function(decimal, sigFigs) {
...
};
});
答案 3 :(得分:0)
angular.module('filters')
.filter({
groupBy: ['$parse', groupByFilter],
countBy: [countByFilter]
});
//function to handle the filter
function groupByFilter($parse) {
return function(input) {
...
}
}