我有一个功能,我需要注入过滤器来过滤货币。 这是我的指示, 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]未知提供者:undefinedFilterProvider< - undefinedFilter。
我需要有关如何在此处注入过滤器的帮助,以便它可以正常工作。
答案 0 :(得分:0)
这就是说attrs.format是未定义的。所以这意味着你试图直接将过滤器的名称传递给你的指令。
我认为这不是一个好主意。最好是使用一个自定义过滤器来获取2个参数,数据格式和货币。
如果你想保持attrs.format方式,请链接你的HTML代码和视图的控制器,这样我们就可以检查出了什么问题。