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 相关文章推荐
表格单元格交错着色实现思路及代码
Apr 01 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
解析AngularJS中get请求URL出现的跨域问题
Dec 01 Javascript
Angular的$http与$location
Dec 26 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 Javascript
微信小程序自定义轮播图
Nov 04 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP 上传文件的方法(类)
2009/07/30 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
python循环监控远程端口的方法
2015/03/14 Python
python遍历类中所有成员的方法
2015/03/18 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
python创建文件备份的脚本
2018/09/11 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
个人教师自我评价范文
2013/12/02 职场文书
前台文员我鉴定
2014/01/12 职场文书
学年末自我鉴定
2014/01/21 职场文书
媒体宣传策划方案
2014/05/25 职场文书
大学生求职信
2014/06/17 职场文书
女生抽烟检讨书
2014/10/05 职场文书