裝飾過濾器
裝飾過濾器時,name 引數必須包含 Filter
字尾(區分大小寫)。如果過濾器被稱為 repeat
,則 decorator 引數為 repeatFilter
。下面我們將裝飾自定義過濾器,重複任何給定的字串 n 次,以便反轉結果。你也可以用同樣的方式裝飾 angular 的內建過濾器,雖然不推薦,因為它會影響框架的功能。
<body>
<div ng-bind="'i can haz cheeseburger ' | repeat:2"></div>
</body>
angular.module('app', [])
.config(function($provide) {
$provide.decorator('repeatFilter', function($delegate) {
return function reverse(input, count) {
// reverse repeated string
return ($delegate(input, count)).split('').reverse().join('');
};
});
})
.filter('repeat', function() {
return function(input, count) {
// repeat string n times
return (input || '').repeat(count || 1);
};
});