我创建的指令使用函数 setFormatting 来屏蔽输入字段中的文本值。
scope.$watch(element, function() {
modelCtrl.$setViewValue(setFormatting(element.val(), attrs.symbol));
modelCtrl.$render();
});
element.bind('blur', function() {
modelCtrl.$setViewValue(setFormatting(element.val(), attrs.symbol));
modelCtrl.$render();
});
scope.$watch 在第一次加载/应用内容时应用掩码, element.bind 在其他时间应用掩码。scope.$watch 将符号(如果有的话)存储为 ng-model 变量的一部分。element.bind 不是。我认为 $setViewValue() 和 $render() 没有更新 ng-model 变量。正在更新的变量在哪里?
请参阅随附的小提琴:http: //jsfiddle.net/PJ3M4/
谢谢。