何为数据双向绑定:就是 视图<-->控制器互相绑定。 不管哪个先改变,另一个都将改变。
我们前面讲的2种绑定方式
1.事件绑定是 视图--> 控制器。属于单向绑定,视图改变控制器。
<input (input)="onInputEvent($event)">
2.属性绑定是 控制器--> 视图。属于单向绑定,控制器改变视图。
<input [value]="name">
假如我们把他们结合在一起,写个例子
<input [value]="name" (input)="onInputEvent($event)">
这样就实现了双向绑定。不管是name属性改变了,还是玩家输入改变了,另一个对象都将改变。
当然Angular提供了一个[(ngModel)]的指令用来简写,实现双向绑定。
<input [(ngModel)]= "name">
注意:不是所有标签都能用双向绑定。只有部分标签可以用,这里的input标签是可以用的。
也不要滥用双向绑定标签,会影响页面性能。在特定的一些页面,比如表单页面可以用。注意他是一把双刃剑。