自定义ng-model指令不触发摘要

时间:2013-08-15 11:03:59

标签: angularjs angularjs-directive

我创建了一个自定义指令,允许以各种格式输入日期,但是当你输入日期并保留输入时,不会触发摘要。

如何才能让摘要消防?

详情

该指令很乐意允许用户输入文本并返回标准日期格式的字符串,以便模型在有效日期时使用。

它使用格式化程序和解析器来执行此操作,并且实际处理在输入标记的on blur事件中完成。

Plunkr显示操作格式化日期的指令,然后如果您在输入框中更改日期,您将看到它旁边的绑定值永远不会更新。

此时我只需要触发摘要/更新模型

1 个答案:

答案 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