2016-03-04 74 views
0

我有一个功能,我需要注入过滤器过滤货币。 这是我的指令, module.exports = prAmountAutoCorrectingField;

function prAmountAutoCorrectingField($filter) { 
    return { 
     require: '?ngModel', 
     restrict: 'A', 
     link: link 
    } 

; 

function link(scope, elm, attrs, ctrls) { 
    if (!ctrls) return; 
     ctrls.$formatters.unshift(function (a) { 
      return $filter(attrs.format)(ctrls.$modelValue) 
     }); 
     ctrls.$parsers.unshift(function (viewValue) { 
      var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, ''); 
      elm.val($filter(attrs.format)(plainNumber)); 
      return plainNumber; 
     }); 
} 
} 

HTML代码

我收到错误,如错误:

[$injector:unpr] Unknown provider: undefinedFilterProvider <- undefinedFilter.

我需要对此处注入过滤器,所以应该很好地工作有所帮助。

回答

0

这是说attrs.format是未定义的。所以这意味着你试图直接将过滤器的名字传递给你的指令。

我不认为这是个好主意。 hava自定义过滤器需要2个参数,格式化数据和货币。

如果你想保持attrs.format的方式,把你的HTML代码和视图的控制器联系起来,这样我们就可以检查出什么问题了。

+0

这是我的指令,我正在尝试在此注入过滤器。我需要它是这样的。这里是我的HTML。 user3017728

+0

那么链接函数中的attrs.format是什么?如果你使用attrs.format,这意味着输入属性应该有一个格式=“”英寸如果你想要获得pr-amount-auto-correcting-field然后它是attrs.prAmountAutoCorrectingField。此外,如果你想通过'货币'wirte它像这样pr-amount-auto-correcting-field = {{'currency'}} – Walfrat

+0

谢谢:) ...它的工作正常 – user3017728