AngularJS:应用货币过滤器返回自定义过滤器的值

jgr*_*ois 3 javascript angularjs angular-filters

我正在编写一个自定义过滤器,用' - '替换零值以用于显示目的.但是,如果它不为零,则应返回输入但过滤为货币.当我尝试这个时,我收到一个意外的令牌错误.

angular.module('app')
        .filter('displaynullcurrency', function(){
            return function(input){
                if(!input){ return ' - '; }
                if(parseFloat(input) != 0){
                    return {{input | currency}};
                }
                return ' - ';
            };
        });
Run Code Online (Sandbox Code Playgroud)

Jos*_*sep 5

当你尝试$filter在javascript函数中使用它时,你必须像这样使用它:$filter('currency')(input),你在函数中使用的语法是为模板保留的,试试这个:

angular.module('app')
        .filter('displaynullcurrency', function($filter){
            return function(input){
                if(!input){ return ' - '; }
                if(parseFloat(input) != 0){
                    return $filter('currency')(input);
                }
                return ' - ';
            };
        });
Run Code Online (Sandbox Code Playgroud)