Angular双向数据绑定
来源:互联网 发布:java jdk 64位 编辑:程序博客网 时间:2024/05/17 08:56
1、什么是双向数据绑定
双向数据绑定:
Angular实现了双向绑定机制。所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更能实时展现到界面。即数据模型(Module)和视图(View)之间的双向绑定。
例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
当你在输入框中进行输入时,也会修改网页中的文本内容。
这里我使用了{{}}来实现了最简单数据绑定,{{}}进行的数据绑定时单向的,只实现了数据展示。然后我用input标签配合ng-model 实现了一个简单的双向数据绑定的例子,双向绑定最常用的场景就是表单,这样当用户在前端页面完成输入后,不用任何操作,我们就已经拿到了用户的数据存放到数据模型中了。
2、双向数据绑定与单向数据绑定
单向数据绑定:
数据模型–>视图
El表达式中常见 ${变量名}以及{{}} ,它只提供从数据源到视图的单方向的数据展示。
缺点:HTML代码一旦生成完以后,就没有办法再变了,如果有新的数据来了,那就必须把之前的HTML代码去掉,重新整合生成一次。
双向数据绑定:
数据模型<==>视图
用户在视图上的修改会自动同步到数据模型中去,同样的,如果数据模型中的值发生了变化,也会立刻同步到视图中去。
缺点:双向数据绑定的应用场景非常有限。
3、双向数据绑定原理
带着问题看下面的代码。
问题:绑定数据是怎么生效的?
如图示例,当点击+1按钮时,显示的数据是否会正常的增加?
如果会正常增加,说明原因。
如果不会,说明原因并修改代码使其可以正常显示。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
上一段代码为无法实现页面显示数据增加的功能。
修改方法:
原因从脏检查机制开始说起。
- 1
- 2
- 3
- 4
- 5
脏检查机制(dirty-checking)是实现双向数据绑定的重要基础。
- 1
- 2
- 1
- 2
- 3
- 4
- 5
以上就是Angular的数据双向绑定的原理。
最后附上官网说明:http://docs.ngnice.com/guide/scope
- angular-数据双向绑定
- Angular双向数据绑定
- Angular双向数据绑定
- Angular双向数据绑定
- Angular双向数据绑定原理
- 【AngularJs】Angular双向数据绑定
- angular 的数据双向绑定
- angular数据双向绑定解密
- 【Angular】双向数据绑定--作用域树
- Angular双向数据绑定简易实现
- angular 第二章 双向数据绑定
- Angular之双向数据绑定基础
- angular双向数据绑定实例代码
- Angular JS中的数据双向绑定
- angular.js学习(1)--双向数据绑定
- 使用angular实现双向数据绑定
- angular.js 双向数据绑定,依赖注入
- angular利用双向数据绑定改变样式
- 7. Reverse Integer--数字反转输出
- 数据库与数据仓库的区别
- mysql中TIMESTAMP和DATETIME的比较
- JS的多种提示框、定时器、定时任务
- 汇编程序的简化写法
- Angular双向数据绑定
- RTL8710读温湿度传感器SHT21
- 智能一代云平台(二十五):利用Nginx对不同的域名进行解析
- 《Efficient Android Threading》Chapter 3---Threads on Android (Android中的线程)
- 微信好友改名、改頭像、改簽名通知
- MySQL中函数使用
- oc 仿微信摇一摇
- 【Shader实战篇】PBR贴图之Specular镜面贴图
- Tmux学习笔记 --- Centos下安装Tmux