文档章节

angularjs 之$apply()【集成自他人】

安吉拉
 安吉拉
发布于 2017/08/17 10:24
字数 479
阅读 5
收藏 0

angularjs的双向数据绑定很强大,但并非所有时候都起作用。

双向数据绑定其实就是当模型发生变化的时候重绘DOM,使看到的数据更新,模型发生变化。

1.DOM事件  

2.xhr响应触发回调

3.浏览器地址发生变化

4。计时器触发回调

以上某一种情况的发生都会触发模型监控机制,同时调用$apply()方法重绘DOM。通常情况下我们使用的一些指令服务会自动触发$apply()的调用,比如$http $location $timeout。还有视图中的指令也可调用,所有ng-[event]指令(ng-click ng-keypress)都会内部调用

但是有些时候是不会调用的。

1,在回调函数里执行的方法不会触发

此时需要手动调$scope方法,使dom重绘。

function b(){

//方法1

$scope.b='b';

$scope.$apply();

//方法2

/**$scope.$apply(function(){

  $scope.b='b';

})**/

}

2,在使用第三方库的时候

我们使用第三方框架比如(jquery),或者调用setTimeout()都可以使用$apply()函数让angular返回一个$digest循环

当我们将jQuery和Angular集成在一起时(这通常被视为一个肮脏的行为),就需要使用$apply(),因为Angular不会察觉到执行在Angular上下文外部的事件。例如,在使用jQuery插件时(比如datepicker),就需要使用$apply()将来自jQuery的值传递到Angular应用中

在这里,我们构建了一个简单的指令(第10章深入探索了如何构建指令),指令中我们在元素上使用了datepicker这个jQuery插件方法。

datepicker插件暴露了一个onSelect事件,这个事件会在用户选择日期时触发。为了在Angular应用内部获取用户选择的日期,我们需要在$apply()函数内运行datepicker的回调函数

© 著作权归作者所有

共有 人打赏支持
安吉拉
粉丝 1
博文 35
码字总数 7547
作品 0
私信 提问
$apply already in progress at Error

Search: Sort by: name age {{phone.name}} {{phone.snippet}} {{phone.age}} XMLHttpRequest cannot load file:///D:/ProgramFilesZhtt/tomcat1081/webapps/AngularJS/js/05.json. Cross or......

梦幻女侠
2013/10/11
1K
1
angular 调试时出现$http.get(...).success is not a function错误

我是angular 初学者,在调试时出现$http.get(...).success is not a function错误,我在网上找了一下,没有得到解决,求一下大神,帮我看一下出现了什么问题谢谢! 具体错误:TypeError: $h...

宸紫懿
2016/12/29
1K
0
《AngularJS学习整理》系列分享专栏

《AngularJS学习整理》系列分享专栏 《AngularJS学习整理》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201748.html 文章 教你用AngularJS框架一行JS代码实现...

开元中国2015
11/09
0
0
再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

Angular 的数据绑定采用什么机制,详述原理? 脏检查机制。阐释脏检查机制,必须先了解如下问题。 单向绑定(ng-bind) 和 双向绑定(ng-model) 的区别? ng-bind 单向数据绑定($scope ->...

634117608
04/19
0
0
Angularjs的$apply及其优化使用

今天,我们要聊得是Angularjs中的小明星$apply。当我们数据更新了,但是view层却没反应时,总能听到有人说,用apply吧,然后,懵懂无知的我们,在赋值代码后面加了$scope.$apply(),然后就惊喜...

北辰狼月
07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
2
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
4
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
3
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部