以前我们通过jquery操作DOM可以实现数据绑定,但这样会使操作量加大,而在angular中可以轻松的实现数据双向绑定。数据双向绑定指的是数据改变,相应的视图发生改变,而用户操作视图,底层数据会发生相应改变。angular实现数据双向绑定主要依靠以下几个指令:
1、Mustache语法---{{ }}
单向的数据绑定,数据--->视图
2、ng-model
实现表单的数据双向绑定
我们可以在input表单上使用ng-model,实现表单输入值和底层数据的双向绑定,实际上它是由事件绑定和属性绑定结合而形成的。例:
<input type="text" [(ngModel)]='keywords' >{{keywords}}
<button (click)="changeKeyWords()">点击</button>
<input type='text' [ngModel]='eventValue' (ngModelChange)='eventValue=$event'>{{eventValue}}
注意:ngmodel在使用的时候需要先在app.module.ts中导入,然后在下面的imports中引入
import {FormsModule} from '@angular/forms'
imports: [ //配置当前模块运行依赖的其他模块
BrowserModule,
AppRoutingModule,
FormsModule
],
原理:
vue中的数据双向绑定是通过object.definePropertys实现的。而angular中的数据双向绑定是通过脏值检测来检查数据是否有更新,从而决定是否更新视图。