Angular如何知道在双向数据绑定中绑定到哪个“事件”

问题描述 投票:1回答:2

我知道在Angular中,以下两行在功能上是相同的

属性和事件绑定

<input type="text" [value]="customerName" (input)="customerName= $event.target.value" />

双向数据绑定

<input type="text" [(ngModel)]="customerName' />

[让我感到困惑的是,Angular如何通过双向数据绑定知道绑定到event元素的input input而不是input元素支持的任何其他事件?

在第一个示例中,代码专门定义了绑定到哪个事件(“ input” event),但在第二个示例中没有。 Angular如何选择要绑定的事件?

angular two-way-binding
2个回答
4
投票

<input [(ngModel)]="customerName"><input [ngModel]="customerName" (ngModelChange)="customerName = $event">的缩写。这是Angular中的约定,也可以与您自己的自定义指令一起使用。

NgModelDirective(由[ngModel]绑定)提供@Input('ngModel') model: any;@Output('ngModelChange') update = new EventEmitter();

我建议在这里同时查看docssource,以便更好地理解。


1
投票

双向数据绑定实际上并没有绑定到输入事件,这是ngModel指令的工作方式:它将给定对象的值的任何更改传递给输入元素,反之亦然。

© www.soinside.com 2019 - 2024. All rights reserved.