裝飾過濾器

裝飾過濾器時,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);
    };
  });   

StackOverflow 文件

StackOverflow 文件