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 相关文章推荐
用javascript实现页面打印的三种方法
Mar 05 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
Vue.js render方法使用详解
Apr 05 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
基于js中this和event 的区别(详解)
Oct 24 Javascript
原生JavaScript实现贪吃蛇游戏
Nov 04 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 array的学习笔记
2012/05/16 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
canvas绘制七巧板
2017/02/03 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
PyTorch学习笔记之回归实战
2018/05/28 Python
Python面向对象类的继承实例详解
2018/06/27 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python操作Jira库常用方法解析
2020/04/10 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
银行批评与自我批评
2014/02/10 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
霸气队列口号
2014/06/18 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
教师个人年终总结
2015/02/11 职场文书
特此通知格式
2015/04/27 职场文书
中秋节感想
2015/08/10 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android