详解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 相关文章推荐
javascript打开word文档的方法
Apr 16 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
JavaScript仿静态分页实现方法
Aug 04 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
Sep 26 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
js实现纯前端压缩图片
Nov 16 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
windows xp下安装pear
2006/12/02 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
php对象工厂类完整示例
2018/08/09 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
sails框架的学习指南
2014/12/22 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
关于python的list相关知识(推荐)
2017/08/30 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python 字典的打印实现
2019/09/26 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
2014年党员自我评议对照检查材料
2014/09/20 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
2014年政教处工作总结
2014/12/20 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书