• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >AngularJS > 详解Angular的双向数据绑定(MV-VM)

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

作者:小谢53 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含angular js详解,angular双向数据绑定,angular双向绑定原理,angular双向绑定,angular2 双向绑定等相关知识,小谢53 希望在学习及工作中可以帮助到您

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>
</div>

执行上面代码,我们使用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>
</div>

这样就可以刷新视图了,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>

也能实现刷新视图!

在举个例子:

<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>
</div>

我们在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>
</div>

看到了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>
</div>

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

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

</div>

您可能想查找下面的文章:

  • 详解Angular路由 ng-route和ui-router的区别
  • 详解Angular2中Input和Output用法及示例
  • Angular.JS中的this指向详解
  • 详解如何在Angular中快速定位DOM元素
  • Angular.js中ng-include用法及多标签页面的实现方式详解
  • Angular.js中控制器之间的传值详解
  • Angular中使用$watch监听object属性值的变化(详解)
  • 关于angular js_$watch监控属性和对象详解
  • Angular2数据绑定详解
  • Angular中ng-bind和ng-model的区别实例详解

相关文章

  • 2017-05-30AngularJS表格添加序号的方法
  • 2017-05-30AngularJS 过滤器(自带和自建)详解
  • 2017-05-30详解AngularJS中的表达式使用
  • 2017-05-30AngularJS中关于ng-class指令的几种实现方式详解
  • 2017-05-30Angularjs编写KindEditor,UEidtor,jQuery指令
  • 2017-05-30AngularJS 面试题集锦
  • 2017-05-30AngularJS HTML DOM详解及示例代码
  • 2017-05-30如何在AngularJs中调用第三方插件库
  • 2017-05-30Angular2使用Angular-CLI快速搭建工程(二)
  • 2017-05-30基于angularjs实现图片放大镜效果

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 在JavaScript的AngularJS库中进行单元测试的方法
    • AngularJS 实现按需异步加载实例代码
    • AngularJS控制器详解及示例代码
    • 实例详解angularjs和ajax的结合使用
    • AngularJs Scope详解及示例代码
    • angularjs学习笔记之完整的项目结构
    • 详解Angular2中的编程对象Observable
    • angular 基于ng-messages的表单验证实例
    • 在React框架中实现一些AngularJS中ng指令的例子
    • AngularJS在IE下取数据总是缓存问题的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有