AngularJS学习笔记(三)数据双向绑定的简单实例


Posted in Javascript onNovember 08, 2016

双向绑定

双向绑定是AngularJS最实用的功能,它节省了大量的代码,使我们专注于数据和视图,不用浪费大量的代码在Dom监听、数据同步上,关于双向更新,可看下图:AngularJS学习笔记(三)数据双向绑定的简单实例

数据-->视图

这里我们只演示有了数据以后,如何绑定到视图上。

<!DOCTYPE html>

<html ng-app="App">
<head>
  <script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/394/xjz9g1bv/angular.js"></script>
  <script type="text/javascript">

  var App = angular.module("App", []);

  App.controller("ctrl", function ($scope) {
      
       $scope.username='张三'
      
        $scope.changename=function(){
          $scope.username='李四';  
        }
    });
    
  </script>
</head>
  <body>
    <div ng-controller ="ctrl">
      <button class='btn btn-primary' ng-click='changename();'>
        username='李四'
      </button>
      <!--页面加载初期,用户可能会看到绑定的表达式-->
      <div>{{username}}</div>
      <!--此绑定不会出现上述情况-->
      <div ng-bind='username'></div>
    </div>
  </body>
</html>

点击按钮之后,div内容变成 李四,效果如图:
AngularJS学习笔记(三)数据双向绑定的简单实例

视图—>数据

上个例子,我们看了数据变化后,视图也会自动变化。那么这个例子则是反过来,视图变化,导致数据也跟着变化,那么数据变化后,我们如何知道呢,这儿我们可以通过另外一个元素将数据再显示出来。

<!DOCTYPE html>

<html ng-app="App">
<head>
  <script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/394/xjz9g1bv/angular.js"></script>
  <script type="text/javascript">

  var App = angular.module("App", []);

  App.controller("ctrl", function ($scope) {
      
       $scope.username='张三'
    });
    
  </script>
</head>
  <body>
    <div ng-controller ="ctrl">
      <input type='text' ng-model='username' />
      
      <div>{{username}}</div>
    </div>
  </body>
</html>

查看效果:
AngularJS学习笔记(三)数据双向绑定的简单实例

实现机制

angular对常用的dom事件,xhr事件等做了封装, 在里面触发进入angular的digest流程。

在digest流程里面, 会从rootscope开始遍历, 检查所有的watcher。

Javascript 相关文章推荐
自定义ExtJS控件之下拉树和下拉表格附源码
Oct 15 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
用jquery的attr方法实现图片切换效果
Feb 05 Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 Javascript
webpack构建换肤功能的思路详解
Nov 27 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
JS html事件冒泡和事件捕获操作示例
May 01 Javascript
深入理解令牌认证机制(token)
Aug 22 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 #Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 #Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 #Javascript
AngularJS压缩JS技巧分析
Nov 08 #Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 #Javascript
bootstrap fileinput完整实例分享
Nov 08 #Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 #Javascript
You might like
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
python生成式的send()方法(详解)
2017/05/08 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
python用post访问restful服务接口的方法
2018/12/07 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
博士学位自我鉴定范文
2013/12/26 职场文书
门面房租房协议书
2014/12/01 职场文书
导游词范文
2015/02/13 职场文书
2015年教师节广播稿
2015/08/19 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server