在$apply方法中存在脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法。

$watch(watchFn,watchAction,deepWatch)

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

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

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

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

例如,实现一个当修改用户名超过五次就报警提示的功能

需要注意的是,$watch 仅仅作为一个监视器的存在,不能阻止你继续修改input内的值。

angular.module('MyApp',[])
.controller('ParserController',function($scope){$scope.count = 0;$scope.$watch('name',function(newVal,oldVal){++$scope.count ;if($scope.count > 5){alert("hahaha")}});
});

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Page Title</title><script src="../../src/angular.js"></script><script src="parser.js"></script>
</head>
<body ng-app="MyApp"><div ng-controller="ParserController"><input ng-model="name"></div>
</body>
</html>

如果监听的是一个对象,而不是一个普通的数值或字符串,那么需要将第三个参数设置为true,这时候才会完全对比前后两次修改的对象是否内容改变,而不是引用改变才触发监听事件。

转载于:https://www.cnblogs.com/Pikzas/p/8982690.html

Angular JS 中的内置方法之$watch相关推荐

  1. Angular JS 中的内置方法之表单验证

    angular js 结合html5 可以实现强大的表单验证功能 关闭html5自带的表单验证功能可以用 转载于:https://www.cnblogs.com/Pikzas/p/9005861.ht ...

  2. 简单聊聊js中的内置对象

    文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...

  3. jquery unbind 异步_jQuery中的内置方法:unbind()

    unbind()方法是jQuery中的内置方法,用于删除任何选定的事件处理程序.此方法可用于删除特定的事件处理程序或停止特定的函数.它可以在任何使用事件对象的事件处理程序上工作. 如果没有提供参数,则 ...

  4. python类的内置方法_python面向对象之类中的内置方法

    __setattr__,__delattr__,__getattr__,__getattribute__以及标准类型的二次加工 __setattr__,__delattr__,__getattr__的 ...

  5. JS中的内置对象 --- Math、Date、Array、String

    1. 基本概念区分 实例对象:通过构造函数创建出来,实例化对象.实例方法必须通过实例对象调用 静态对象(内置对象): 不需要创建, 直接就是一个对象,方法(静态方法)直接通过这个对象名调用.静态方法必 ...

  6. js中的内置对象(详细篇)

    在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在调用属性和 ...

  7. javascript中的内置对象和数据结构

    文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...

  8. 关于学习Python的一点学习总结(33->继承中内置方法及多继承)

    73.继承中的一些内置方法: 1. issubclass(类1,类2):判断一个类是不是另一个类的子类: 2. 类名. _ bases _ :访问一个类的特殊属性: 3. isinstance(对象, ...

  9. python __repr__方法_第8.13节 Python类中内置方法__repr__详解

    当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...

最新文章

  1. 语言模型自然语言处理[置顶] 哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(四)...
  2. java tcp fin_TCP报文中的SYN,FIN,ACK,PSH,RST,URG
  3. OSChina 技术周刊第十六期 —— 每周技术精粹
  4. 技术玩法大升级,网易MCtalk揭秘社交产品背后的秘密
  5. linux apache 安装 rewrite,Linux主机下Apache如何使用rewrite模块
  6. POJ2228-Naptime【环形结构上的dp】
  7. pod 挂载点 mysql_Pod挂载(Secret )
  8. matlab怎么求hadamard,hadamard matlab
  9. 2019湖南职高计算机总分是多少,2019湖南高职单招一般多少分能过
  10. 数据结构专题(二):2.3链表插入元素,尾插法
  11. vmware cli 修改磁盘为SSD
  12. 如何求出三角形的面积
  13. 利用有限自动机进行字符串匹配
  14. Python读CookBook之数据结构和算法
  15. MySQL建库建表语句
  16. 线性代数之 矩阵乘法的本质
  17. 江苏省计算机二级c语言备考,江苏省计算机二级C语言考试备考指南
  18. Android基本UI控件(一)
  19. Sublime Text清除历史记录
  20. Java与咖啡豆 - Java命名由来

热门文章

  1. 计算机应用基础计算配置教案,[定稿]计算机应用基础教案_Windows_XP版V8.1(全文完整版)...
  2. java的spinner_java中的spinner | 学步园
  3. java应该学的基础东西
  4. 高性能实践IO之Reactor模式
  5. c语言cobegin用法,用C语言实现P、V操作
  6. 某省HW中遇到的提权
  7. 《数据库SQL实战》从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。
  8. mysql中ifnull和hive中if函数的转换
  9. spark运行时加载hive,hdfs配置文件
  10. 步步深入MySQL:架构-查询执行流程-SQL解析顺序