详解Angular的双向数据绑定(MV-VM)


Posted in Javascript onDecember 26, 2016

angular的核心MVVM,下面来看看MV(数据到视图)。

<div ng-controller="Aaa">
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope){
     $scope.name = 'hello AngularJs';
  setTimeout(function(){



$scope.name = 'Hi';
 
  },2000); 
  };
</script>

执行上面代码,我们使用setTimeout延迟两秒去更新数据(M),我们的视图(V)并没有发生改变。

其实数据确实发生改变,但是我们的视图(V)并没有及时刷新,原因是原生的setTimeout不具备刷新的功能。

angular为我们提供了setTimeout的服务,$timeout,需要在Aaa中引入该服务 !

<div ng-controller="Aaa">
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope,$timeout){
    $scope.name = 'hello AngularJs';

$timeout(function(){
   
  $scope.name = 'Hi';
 
 },2000);
  };
<script>

这样就可以刷新视图了,M(数据)到V(视图)的过程。

如果我也想让setTimeout也具有刷新视图的功能怎麽办 ? 可以借助$apply方法!

<div ng-controller="Aaa">
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope){
    $scope.name = 'hello AngularJs';
    setTimeout(function(){
      $scope.$apply(function(){
        $scope.name = 'Hi';
      });
    },2000);
  }
<script>

也能实现刷新视图!

在举个例子:

<div id="Aaa" ng-controller="Aaa" ng-click="name='Hi'">
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope){
    $scope.name = 'hello AngularJs';
  };
</script>

我们在ID为Aaa的元素绑定了一个点击事件,当发生点击的时候将name值改为Hi,

当然,也可以传递一个函数,来实现更多的功能。

<div id="Aaa" ng-controller="Aaa" ng-click="show()">
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope){
    $scope.name = 'hello AngularJs';
    $scope.show = function(){
      $scope.name = 'Hi';
    };
  }
</script>

看到了click,相信你也知道如何使用鼠标移入和移出的这些常用的事件了。

看最后一个例子,V(视图)到M(数据)的过程。

<div ng-controller="Aaa">
  <input type="text" ng-model="name"/>
  <p>{{name}}</p>
</div>
<script type="text/javascript">
  function Aaa($scope){
    $scope.name = 'hello AngularJs';
  };
</script>

我们在input标签上绑定了一个ng-model,这个就是绑定的数据,会默认填充到input的value上,当我们的input值发生改变的时候,对应在$scope中的数据也会发生改变,从而影响到视图中的p标签的值也会发生改变。

详解Angular的双向数据绑定(MV-VM)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
jQuery读取XML文件内容的方法
Mar 09 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
jQuery Mobile 触摸事件实例
Jun 04 Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
JavaScript canvas实现跟随鼠标移动小球
Feb 09 Javascript
Angular工具方法学习
Dec 26 #Javascript
angular双向绑定模拟探索
Dec 26 #Javascript
jquery Banner轮播选项卡
Dec 26 #Javascript
Javascript中常用类型的格式化方法小结
Dec 26 #Javascript
Angular的自定义指令以及实例
Dec 26 #Javascript
如何提高javascript加载速度
Dec 26 #Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
Dec 26 #Javascript
You might like
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
tab栏切换原理
2017/03/22 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
Python输出带颜色的字符串实例
2017/10/10 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
浅谈django orm 优化
2018/08/18 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
python 如何区分return和yield
2020/09/22 Python
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
优秀教师工作感言
2014/02/16 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
2014年学习部工作总结
2014/11/12 职场文书
财务经理岗位职责
2015/01/31 职场文书
入党介绍人意见范文
2015/06/01 职场文书
车辆管理制度范本
2015/08/05 职场文书
小学科学课教学反思
2016/02/23 职场文书
员工试用期工作总结
2019/06/20 职场文书