码:
<input type="text" ng-modal="name" />
{{name}}
当我在中输入内容时input
,以下内容{{name}}
将立即更改。是否可以配置它仅name
在输入所有字符并保留输入后才更新?
更新资料
正如许多人提到的那样,Angular现在使用ng-model-options
指令对此提供了内置支持。在这里查看更多。
<input type="text" ng-model="name" ng-model-options="{updateOn: 'blur'}" />
下面的旧答案:
ng-model没有内置选项来更改该行为,但是您可以编写一个自定义指令来执行此操作。@Gloopy
写了这样的指令。你可以在这里看看小提琴。
该指令从input
和keydown
事件中注销,这些事件在每次击键后触发更新。
<input type="text" ng-model="name" ng-model-onblur />
更新:
更新了小提琴以使用最新的稳定AngularJS(在撰写本文时为1.2.16),而不是直接在github上引用主版本。
还添加了显式优先级,以便在执行伪指令后ng-model
才能确保正确更改事件侦听器。
下面是我的代码的一个片段。调用filteredData()时,状态未更新。在状态更新之前,我必须单击按钮两次。这是一个旧项目,我正在使用钩子更新它。我以前在设置状态后使用了回调函数,但我不能用钩子实现。 }
问题内容: 我创建了以下示例,以便您可以确切了解正在发生的事情:http : //jsfiddle.net/8t2Ln/101/ 如果我使用ng-options,也会发生同样的事情。我这样做有不同的原因,但由于简化了示例,所以省略了这一部分。 如您所见,默认情况下它具有两个选项。我将在选择旁边显示ng- model的选择值,以便您可以看到它的含义。当您在顶部添加第三个选项时,它会将值设置为该新选项
问题内容: 这里的PLUNKR示例 我正在使用某种形式的jquery autocomplete作为angularjs direcitve。当jquery使用angular 更新输入的值时,直到下一个摘要(我想)之后才注意到更改。 我的第一个想法是使用来对后摘要执行操作,但是如您所见,它没有帮助。 我的第二种方法是重写该元素的功能以触发事件,但是我没有设法使其起作用。 尝试从自动完成列表中选择一个值
问题内容: 输入如下: 当我手动键入并更改输入时,将执行。但是,如果我以编程方式通过其他功能更改了repair.test值,则不会触发ng- change的操作。我已经阅读了角度教程,这可能是预期的行为。 https://docs.angularjs.org/api/ng/directive/ng更改 “当值更改来自模型时,不评估表达式。” <-我也需要这个。模型以任何方式更改时,如何在控制器中触
问题内容: 我正在做一个待办事项应用程序。这是违规代码的非常简化的版本。我有一个复选框: 这是调用复选框的函数: updateItem是映射为分派到redux的函数 我的问题是,当我调用updateItem操作并在console.log状态时,它总是落后1步。如果未选中该复选框且该复选框不为true,则仍将状态为true传递给updateItem函数。我是否需要调用另一个函数来强制状态更新? 问题
问题内容: 这是我不工作的演示 模型保持不变。如何同步?请注意,数据结构很重要。 问题答案: 的结合将评估在当前范围的表达。作为创建一个子范围,这意味着将寻找一个命名属性的子范畴。在您的示例中,我们希望它在 父 范围内查找属性,该属性的别名为。 这是设计使然,可以通过引用表达式中的父范围来避免这种情况。 工作演示 代码(注意输入元素上的绑定已更改): 当您使用Angular 1.3的Beta版时,