【问题标题】:How does Angular know which "event" to bind to in Two-Way Data BindingAngular 如何知道双向数据绑定中要绑定的“事件”
【发布时间】:2019-10-26 18:31:25
【问题描述】:

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

属性和事件绑定

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

双向数据绑定

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

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

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

【问题讨论】:

  • 输入指令默认使用input事件 - docs

标签: angular two-way-binding


【解决方案1】:

&lt;input [(ngModel)]="customerName"&gt;&lt;input [ngModel]="customerName" (ngModelChange)="customerName = $event"&gt; 的缩写形式。这是 Angular 中的约定,也适用于您自己的自定义指令。

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

我建议您查看docssource 以获得更好的理解。

【讨论】:

    【解决方案2】:

    两种方式的数据绑定并不是真正绑定到输入事件,而是 ngModel 指令的工作方式:它将给定对象值的任何更改传递给输入元素,反之亦然。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      相关资源
      最近更新 更多