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

angular的$watch方法详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含angular,watch,详解等相关知识,匿名希望在学习及工作中可以帮助到您
在$apply方法中提到过脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法。

(1)$watch简介

在digest执行时,如果watch观察的的value与上一次执行时不一样时,就会被触发。

AngularJS内部的watch实现了页面随model的及时更新。

$watch方法在用的时候主要是手动的监听一个对象,但对象发生变化时触发某个事件。

(2)watch方法用法

$watch(watchFn,watchAction,deepWatch)

watchFn:angular表达式或函数的字符串

watchAction(newValue,oldValue,scope):watchFn发生变化会被调用

deepWatch:可选的布尔值命令检查被监控的对象的每个属性是否发生变化

$watch会返回一个函数,想要注销这个watch可以使用函数

(3)例子

在前面的例子中,当name的表单改变30次,然后触发某个事件。

控制器代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


var firstController = function ($scope){
    $scope.n
ame='张三';
        $scope.count=0;
    
    // 监听一个model 当一个model每次改变时 都会触发第2个函数
    $scope.$watch('name',function(newValue,oldValue){
 
        ++$scope.count;
 
        if($scope.count > 30){
            $scope.name = '已经大于30次了';
        }
    });
 
}

html代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <p ng-app="">
 
        <p ng-controller="firstController">
            <input type="text" value="" ng-model="name"/>
 
            改变次数:{{count}}-{{name}}
        </p>
    </p>
    <script type="text/javascript" src="app/index.js"></script>
<script type="text/javascript" src="../../vendor/angular/angularjs.js"></script>
</body>
</html>

运行效果如下:

前30次可以随意修改:

wKiom1OZYZSyIr6nAAAxzkizraE504.jpg

当修改了30次后,name固定为'已经大于30次了':

wKioL1OZYcCQhyBBAAA0dnPxaic706.jpg

这就是watch的作用,model每一次改变时都会触发第二个函数。

(4)watch的第三个参数

当监听的为一个对象或者数组时,例如:

1

2

3

4

$scope.data = {
        name :'李四',
        count:20
    }

此时data里的name和count都要监听,那么可以这么写:

1

2

3

    $scope.$watch('data',function(){
 
    },true)

如果不加第三个参数,那么只会监听data,只有当data引用改变时才会触发。

因此当需要监听一些引用对象需要把第三个参数设置成true。

以上就是angular的$watch方法详解的详细内容,更多请关注微课江湖其它相关文章!

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

  • Angular下H5多张上传图片的方法
  • angularjs的内存溢出怎么处理
  • angular的$watch方法详解
  • AngularJS“路由”的简介及用法介绍
  • ngAnimate插件是做什么的?
  • Angular2应该如何学习?
  • Angular-指令总汇
  • 详细介绍AngularJS中使用HTML5摄像头拍照的图文详情
  • angularJS适不适合做互联网金融产品?
  • 后端渲染html、前端模板渲染html,jquery的html,各有什么区别?

相关文章

  • 2018-12-03HTML5.1 里的新东西
  • 2018-12-03HTML5/CSS3实现漂亮的分步骤注册登录表单的示例代码分享
  • 2018-12-03Bootstrap拟态框+支付宝首页
  • 2018-12-03关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法 _html5教程技巧
  • 2017-08-06让IE支持HTML5的方法
  • 2018-12-03HTML5和CSS3实例教程总结(推荐)
  • 2018-12-03HTML4和HTML5之间除了相似以外的10个主要不同_html5教程技巧
  • 2018-12-03HTML5 语音搜索(淘宝店语音搜素)_html5教程技巧
  • 2018-12-03[HTML5代码艺术]17行代码的贪吃蛇小游戏
  • 2018-12-03如何理解 Web 语义化?

文章分类

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

最近更新的内容

    • 关于HTML5和CSS3的几个“新增”
    • 请教前端的正确学习方式?
    • 如何通过html5实现摇一摇的功能
    • 现场活动中,有什么推荐的微信互动游戏?求赐教。
    • HTML5之HTML元素扩展(上)—新增加的元素及使用概述_html5教程技巧
    • 详解HTML5中的拖放事件(Drag 和 drop)
    • 高德地图+canvas画图结合实现一个小项目
    • html5 audio标签怎么用?html5 自动播放实现代码实例
    • 揭秘爱消除+小王子粘土风格动画HTML5制作全过程
    • HTML5边玩边学(四)-变幻的色彩

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

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