Angular ngModel绑定是否总是在更改事件之前?
在以下示例中,文本框具有关联的ngModel绑定以及更改函数:Angular ngModel绑定是否总是在更改事件之前?,angular,Angular,在以下示例中,文本框具有关联的ngModel绑定以及更改函数: <input type="text" [(ngModel)] = "typedText" (change)="calculateTextLength()" /> 根据我有限的经验,“calculateTextLength()”函数只有在“typedText”变量中的输入文本更新后才被调用 我能知道这些是否有优先顺序吗?首先,我们需要了解(更改)不是“角度事
<input type="text" [(ngModel)] = "typedText" (change)="calculateTextLength()" />
根据我有限的经验,“calculateTextLength()”函数只有在“typedText”变量中的输入文本更新后才被调用
我能知道这些是否有优先顺序吗?首先,我们需要了解
(更改)
不是“角度事件”,而是DOM事件。如果需要动态绑定,可以使用名为(ngModelChange)
的事件,而不是(更改)
。我认为这应该可以解决这个问题。标签中属性的顺序并不重要,但您可以随时重新排列它们,以便更好地理解要在这里解释过程,我们应该注意以下几点:
不是一个“角度事件”,而是一个事件change
- 我们可以在任何地方使用
(不链接到角度系统)change
将在用户模糊(~离开)输入时触发(我们这里讨论的是DOM,而不是角度)change
- 在Angular中,虽然不需要在同一个元素中使用
和change
(Angular的ngModel
),但如果我们同时使用它们,它将在绑定到ngModelChange
的值更改后触发[(ngModel)]
- 有一个角度化版本的
,它是change
:一个角度事件,当(之前)ngModelChange
改变时触发ngModel
- 如果没有
,我们就无法使用ngModel
(而不是ngModelChange
)change
仅在打算更新模型时才会触发,即本质上是监听输入事件,并在用户键入、粘贴或更改输入值时设置模型,这意味着:将在绑定到ngModelChange
的值发生更改之前触发。[(ngModel)]
谢谢@Mridul