1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Angular2.0 基础:双向数据绑定 [(ngModel)]

Angular2.0 基础:双向数据绑定 [(ngModel)]

时间:2020-01-02 14:29:52

相关推荐

Angular2.0 基础:双向数据绑定 [(ngModel)]

在属性绑定中,值从模型到屏幕上的目标属性 (property)。 通过把属性名括在方括号中来标记出目标属性,[]。 这是从模型到视图的单向数据绑定。

而在事件绑定中,值是从屏幕上的目标属性 到 model。通过把属性名括在圆括号中来标记的 这个是 view 到 model 的反向数据绑定

而[()] 的组合来标记双向数据的绑定和数据流动。

就如同我们先用[ngModel]=“model.name”对其进行model 到 view 的数据绑定,然后再用ngModelChange 事件对视图的数据变化进行监控

(ngModelChange)="model.name=$event"

NOTE:

ngModelChange 并不是<input>元素的事件。他实际上是NgModel 指令的事件属性。当angular 在表单中看到[(x)]的绑定目标时, 它

会期待这个x指令有一个名为x的输入属性,和一个名为xChange的输出属性。

模板表达式中的另一个古怪之处是model.name = $event。 之前看到的$event对象来自 DOM 事件。 但ngModelChange属性不会生成 DOM 事件

它是AngularEventEmitter类型的属性,当它触发时, 它返回的是输入框的值 —— 也正是希望赋给模型name属性的值。但在实际中几乎总是优先使用

[(ngModel)]形式的双向绑定。 只有当需要在事件处理函数中做一些特别的事情(例如合并或限制按键频率)时,才会拆分出独立的事件处理函数

{{diagnostic}}<div class="container"><h1>Hero Form</h1><form><div class="form-group"><label for="name">Name</label><input type="text" class="form-control" id="name" requiredname ="name" [(ngModel)]="model.name"></div><div class="form-group"><label for="alterEgo">Alter Ego</label><input type="text" class="form-control" id="alterEgo"[(ngModel)]="model.alterEgo" name ="alterEgo"></div><div class="form-group"><label for="power">Hero Power</label><select id="power" class="form-control" required[(ngModel)]="model.power" name ="power"><option *ngFor ="let pow of powers" [value]="pow">{{pow}}</option></select></div><button class="btn btn-default" (click)="onSubmit()">Submit</button></form></div>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。