小编典典

如何在angular.js中从另一个过滤器调用一个过滤器

angularjs

我有一个过滤器linkifyStuff,其中需要使用其他过滤器处理一些变量。我无法弄清楚从另一个调用一个过滤器的语法。

我了解过滤器链接-这不是我想要的。我想将过滤器应用于linkifyStuff过滤器中的局部变量,而不是其输入或输出。

我希望像下面这样工作,但是$ filter(’filtername’)显然不是正确的语法。

module.filter('sanitizeStuff', function() {
    // ...
})

module.filter('prettifyStuff', function() {
    // ...
})

module.filter('linkifyStuff', function($filter) {
    return function(text) {
        // ...
        // ...
        return $filter('sanitizeStuff')(foo) + ' whatever ' + $filter('prettifyStuff')(bar)
    }
})

我可以为sanitizeStuff和sanitizeStuff编写一个普通的js函数,然后从这些过滤器中调用该函数,但这似乎是错误的。关于如何以角度的方式做任何建议?

谢谢。


阅读 219

收藏
2020-07-04

共1个答案

小编典典

将过滤器注入linkifyStuff使用<filterName>Filter语法。像这样:

app.filter('linkifyStuff', function(sanitizeStuffFilter,prettifyStuffFilter) {
    return function(text) {

        return sanitizeStuffFilter(text) + ' whatever ' + prettifyStuffFilter(text);
    }
});

演示

2020-07-04