关于angular js_$watch监控属性和对象详解

发布时间 - 2026-01-11 00:47:36    点击率:

$Watch:(监听一个model,当一个model每次改变时,都会触发第二个函数)

$watch('watchFn',watchAction,deepWatch)

watchFn:带有Angular 表达式或者函数的字符串,它会返回被监控的数据模型的当前值。

watchAction: 一个函数function(newValue,oldValue){},当watchFn 发生变化时会被调用

deepWatch:默认为false,监听数组的某个元素或者对象的属性时设置为true;

监控一个属性:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
  <form>
    <div class="form-group">
      <input ng-model="name" />{{name}}
      <p>改变次数{{count}}</p>
    </div>
  </form>
</div>
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script type="text/javascript">
  
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function ($scope){
    $scope.name = '橘子';
    $scope.count = 0;
    $scope.$watch('name', function (newValue, oldValue) {
      $scope.count++;
      if($scope.count >5){
        $scope.name = '苹果';
      }
    });
  });
</script>
</body>
</html>

监控一个对象(deepWidth为true)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
  <form>
    <div class="form-group">
      <input ng-model="Data.name" />{{Data.name}}
      <p>改变次数{{count}}</p>
    </div>
  </form>
</div>
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script type="text/javascript">

  var app = angular.module('myApp', []);
  app.controller('myCtrl', function ($scope){
    $scope.Data = { name: '橘子' };
    $scope.count = 0;
    $scope.$watch('Data', function (newValue, oldValue) {
      if(newValue == oldValue)
      return;
      $scope.count++;
      if($scope.count >5){
         $scope.Data.name = '苹果';
      }
    }, true);
  });
</script>
</body>
</html>

以上这篇关于angular js_$watch监控属性和对象详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# angularjs  # watch  # 对象  # 对angular 监控数据模型变化的事件方法$watch详解  # 分享Angular http interceptors 拦截器使用(推荐)  # 详解AngularJS用Interceptors来统一处理HTTP请求和响应  # angular中的http拦截器Interceptors的实现  # Angular通过 HTTP Interceptor 实现 HTTP 请求超时监控的例子  # 给大家  # 希望能  # 第二个  # 这篇  # 设置为  # 它会  # 小编  # 大家多多  # 默认为  # 一个函数  # pre  # class  # brush  # ccffcc  # span  # true  # background  # gt  # head  # meta 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  如何在腾讯云服务器快速搭建个人网站?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  微信h5制作网站有哪些,免费微信H5页面制作工具?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Laravel如何使用Blade模板引擎?(完整语法和示例)  深圳网站制作平台,深圳市做网站好的公司有哪些?  Laravel怎么在Controller之外的地方验证数据  JS中对数组元素进行增删改移的方法总结  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel怎么实现验证码(Captcha)功能  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  奇安信“盘古石”团队突破 iOS 26.1 提权  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何用AWS免费套餐快速搭建高效网站?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  常州企业网站制作公司,全国继续教育网怎么登录?  如何基于云服务器快速搭建个人网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  php结合redis实现高并发下的抢购、秒杀功能的实例  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何用花生壳三步快速搭建专属网站?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何在阿里云完成域名注册与建站?  韩国服务器如何优化跨境访问实现高效连接?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  C++用Dijkstra(迪杰斯特拉)算法求最短路径  java ZXing生成二维码及条码实例分享  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何在万网自助建站平台快速创建网站?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  焦点电影公司作品,电影焦点结局是什么?