如何在打字稿中调用其他一个过滤器

时间:2017-05-15 10:58:29

标签: angularjs typescript

我有一个名为coffeefiler的过滤器,其中我想调用另一个名为coldcoffee的过滤器

module ccd.coffee{
'use strict';

var myccd = angular.module('ccd.coffee');
export function coffeefilter() {
    return (value: any, key: string) => {
        if (value == null) { return 'not available'; }
        if (key === 'mocha') {
            return MochaEnum[value] || value;
        } else if (key === 'espresso') {
            return EspressoEnum[value] || value;
        } else if (key === 'coldcoffee') {
             //call filter 2 here
        return value;

    };
  }

     myccd .filter('coffeefilter', coffeefilter);
 }

我的第二个过滤器是这样的:

 module ccd.coldcoffee{
'use strict';

var core = angular.module('ccw.coldcoffee');

export function coldcoffee() {
    return (value: any) => {
        //logic
    };

    core.filter('coldcoffee', coldcoffee);
}

我无法弄清楚如何将一个过滤器注入其他的打字稿中。

1 个答案:

答案 0 :(得分:0)

您需要做的就是在第一个过滤器中注入 $ filter 服务,并使用它来获得第二个过滤器。

module ccd.coffee{
'use strict';

var myccd = angular.module('ccd.coffee', ['othermodule']);
cofeefilter.$inject = ['$filter'];
export function coffeefilter($filter) {
    return (value: any, key: string) => {
        if (value == null) { return 'not available'; }
        if (key === 'mocha') {
            return MochaEnum[value] || value;
        } else if (key === 'espresso') {
            return EspressoEnum[value] || value;
        } else if (key === 'coldcoffee') {
             //call filter 2 here
             return $filter('coldcoffee')(value);
        }
        return value;

    };
  }

     myccd .filter('coffeefilter', coldcoffee);
 }

您可以详细了解 $ filter here