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

时间:2014-09-24 18:01:21

标签: javascript angularjs angular-filters

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

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

2 个答案:

答案 0 :(得分:5)

当您尝试在javascript函数中使用$filter时,您必须使用它:$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 ' - ';
            };
        });

答案 1 :(得分:4)

您正试图在绑定语句中的指令中管道一个值。您只能在模板中执行此操作。

要返回按货币过滤的输入值,您应该执行以下操作:

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