我创建的指令使用函数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();
});$watch第一次加载/应用内容时应用掩码,element.bind在其他时间应用掩码。范围.$watch是将符号(如果有)存储为ng模型变量的一部分。element.bind不是。我认为$setViewValue()和$render()没有更新ng模型变量。变量在哪里更新?
见附件小提琴:http://jsfiddle.net/PJ3M4/
谢谢。
发布于 2013-11-08 14:40:56
$watch在“摘要”循环中执行。element.bind回调是从外部角调用的,因此必须添加对scope.$apply()的显式调用。
element.bind('blur', function() {
modelCtrl.$setViewValue(setFormatting(element.val(), attrs.symbol));
modelCtrl.$render();
scope.$apply();
});更新小提琴
有关AngularJS事件循环的信息,请参阅文档。
https://stackoverflow.com/questions/19861408
复制相似问题