我创建了一个自定义指令,允许以各种格式输入日期,但是当你输入日期并保留输入时,不会触发摘要。
如何才能让摘要消防?
详情
该指令很乐意允许用户输入文本并返回标准日期格式的字符串,以便模型在有效日期时使用。
它使用格式化程序和解析器来执行此操作,并且实际处理在输入标记的on blur事件中完成。
Plunkr显示操作格式化日期的指令,然后如果您在输入框中更改日期,您将看到它旁边的绑定值永远不会更新。
此时我只需要触发摘要/更新模型
答案 0 :(得分:2)
您只需在$apply
期间添加bind
即可。无论何时绑定到DOM事件,都需要$apply
强制摘要。
// configure events on the element
function configureEvents(element, scope, ctrl, allowNull) {
// remove handlers that would fire events while the user
// is inputting data
element.unbind('input').unbind('keydown').unbind('change');
// bind to the blur event as we know the user should have
// finished inputting when they leave the control
element.bind('blur',function() {
scope.$apply(function() {
processUserInput(element, ctrl, allowNull);
});
});
}
为了达到这个目的,我将范围传递给configureEvents
:
configureEvents(element, scope, ctrl, allowNull);
这是一个正在运作的fork of your Plunker。