<span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在使用angular时我们必不可少的会用到$watch ,angular在实现数据双向绑定时就已经再调用$watch了,</span><span style="font-size: 13.3333px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">$watch可以 监听任意模型ng-model,我们对该model修改时,就会调用相应的$watch进行监听 ,$timeout呢 有相当于angualr的定时器,我们把两个结合一下可以做出来 一个,监听input 且防抖动的效果,所谓防抖动,也就是数据延时提交,我们在input修改完之后,设置一定的延迟时间,等待用户再次输入 如果超出延迟时间用户还没有再次输入,我们就将数据提交。</span>
$scope.$watch('filterOptions', function (newVal, oldVal) {if (newVal !== oldVal) {if (timeout) $timeout.cancel(timeout); //如果当前时间已经有一个timeout在开启,那么先取消掉这个开启的timeouttimeout = $timeout(function() {$scope.getPagedDataAsync('admin/bill/'+$stateParams.page+'?pageCount='+$scope.paginationConf.itemsPerPage,$scope.filterOptions);}, 800);}}, true);

后来我发现我可以代替这个timeout功能,我自己写了一个类似的功能方法  供大家参考:

<!-- $watch 模型监控 -->
myApp.controller('myWatch',function($scope,$timeout){$scope.name='nihao';$scope.updated='-1';var timeout='';var executeTime='';$scope.$watch('name',function(){var currentTime = (new Date()).valueOf();console.log("上次执行时间"+executeTime);if ((currentTime-executeTime)<2000||executeTime=='') {executeTime=currentTime;return; };executeTime=currentTime;$scope.updated++;});
});

html

<!-- $watch 模型监控 --><br>模型监控<br> <div ng-controller="myWatch"><input ng-model="name" />Name updated: {{updated}} times.</div>

提交数据也就是,我这里用简单的update(修改次数)自增来代替 在页面上显示的效果 就是当用户输入一个字符,并且在两秒内不在做操作时,update记录一次修改次数

angularJS $watch $timeout 使用心得相关推荐

  1. SQL Server 连接字符串和身份验证 学习

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.           PropertyName1=Value1 ...

  2. asp.net数据库连接web.config配置

    本文来自 博客园 mile ,转载请详细标明作者及出处,以示尊重! 作者:mile 原文:http://www.cnblogs.com/lhws/archive/2012/03/15/2397937. ...

  3. SQL Server 连接字符串和身份验证

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.           PropertyName1=Value1 ...

  4. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  5. 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版

    嗨,各位好. 相信各位过来点开的时候会鄙视一句"这厮,又来搞山石了",哈哈没错,这次确实又来了,不过这次带了点排错的心得过来,希望给未来在常见的配置过程当中,不知道怎么排错时候有些 ...

  6. System.Threading.Timer使用心得

    System.Threading.Timer使用心得 2008-11-20 00:09 System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求 ...

  7. android pppd流程,pppd调试心得.md

    描述 pppd是用于驱动3g模块的一种方式,其本质是和运营商APN协商,建立连接 其与运营商之间使用ppp协议,而用户在应用层使用系统提供的socket即可,从而忽略底层使用的时何种接口的设备,避免因 ...

  8. 关于DIY eGPU的使用配置心得

    eGPU配置文件路径: V:\configstartup.bat 内容如下:(与其说是心得,不如说是自己配置后体验的效果,来翻译一下下面英文会给显卡带来什么样的表现) :::::::::::::::: ...

  9. 微信小程序开发总结与心得(一)

    Fundebug专注于JavaScript.微信小程序.微信小游戏,Node.js和Java实时BUG监控.真的是一个很好用的bug监控费服务,众多大佬公司都在使用. 0 前言 最近的工作重心一直在小 ...

最新文章

  1. python基础-垃圾回收机制
  2. 集成模型Xgboost!机器学习最热研究方向入门,附学习路线图
  3. shell训练营Day18
  4. GDCM:gdcm::GroupDict的测试程序
  5. python获取文本框里输入的值_如何从Tkinter文本框小工具获取输入?
  6. 前端学习(1899)vue之电商管理系统电商系统之渲染添加用户的表单
  7. MySQL应用安装_mysql安装和应用
  8. Java快速入门学习笔记1 | Eclipse使用
  9. ARP病毒***症状
  10. java sql 写入万条数据_如何快速向数据库插1000万数据?4种方法对比,它简单却速度最快
  11. 总结G1垃圾收集器面试题
  12. js获取单选按钮选项
  13. 暴风影音硬件加速播放高清影片
  14. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(4):验证代码并编写自己的device
  15. 三角函数逼近锯齿函数和阶梯函数
  16. Vue事件修饰符.prevent .passive
  17. als算法参数_推荐算法之ALS
  18. 投票动态代理proxy案例(java)
  19. git的一套全流程上手(不包括报错(我忘了有哪些报错了)以及其解决方案(篇幅问题))...
  20. mac上的kindle打开mobi文件的方式

热门文章

  1. 为计算机奠定了基础,计算机应用基础 习题
  2. 流媒体发展新趋势 p2p网络技术 p2p穿透 p2p音视频解决方案
  3. 阿里云 服务器 89/年 , (双核4G 3M)/3年 创业足够了 http://t.cn/Ai1BNZlZ 免费
  4. Java中常量定义在interface中好还是定义在class中好(常量接口模式)
  5. 电商中抢购与秒杀—大规模并发
  6. #我爱cf之每日一题——辣鸡字符串 02
  7. nginx使用Proxy-protocal
  8. Java SHA256加密
  9. vue实现sha256加密
  10. Python数据库操作(详细步骤)