angualr 之 $$phase
对于angular,
$$phase 是 作为angular 内部状态表示位,用来标示当前是处于哪个阶段。
用有的阶段有
$digest
$apply
在使用的是例如你想调用scope.$apply的时候,经常会遇到这样的错误
Error:$apply already in progress
为了预防这样的错误,
有人是这么写的
if (!scope.$$phase && !scope.$root.$$phase){//脏值检测
scope.$apply();
}
一个合理的做法
就是使用$timeout 代替使用,这种写法是目前最好的方法了。
$timeout(function(){//angular本身检测不到异步操作,比如原生的定时器,所以要用angular内部的$timeout
// anything you want can go here and will safely be run on the next digest. })
随机推荐
- 《gradle 用户指南中文版》 第一部分、关于Gradle
第一部分.关于Gradle 目录1.介绍1.1 关于本用户指南2.概述2.1 特性2.2 为什么选择Groovy? 上一页 | 目录 | 下一页
- iOS开发之如何应对苹果app的ipv6时代?
WWDC2015苹果宣布在ios9支持纯IPv6的网络服务,并且要求2016年提交到app store的应用必须兼容纯IPv6的网络,要求适配的系统版本是ios9以上(包括ios9). 一 背景介绍 ...
- IOS开发 ARC和非ARC下使用Block属性的问题
1. Block的声明和线程安全 Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非AR ...
- js之无缝轮播图
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- 博客迁移至“零一积流|it-refer.com”
虽然在博客园写了没几篇文章,考虑到个人发展,自己还是建立一个独立的站点:零一积流. 以后直接在自己网站上写东西了,此处只用做文章收藏.
- [译]SSL/TLS真的被BEAST攻击攻破了吗?真实情况是怎样的?我应该做什么?
原文链接:https://luxsci.com/blog/is-ssltls-really-broken-by-the-beast-attack-what-is-the-real-story-what ...
- SpringMVC传递数据的流线图
流程含义解释:(1)HTTP请求到达web服务器,web服务器将其封装成一个httpServletRequest对象(2)springMVC框架截获这个httpServletRequest对象(3)s ...
- 如何在CentOS系统中安装配置SNMP服务
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...
- 什么是YARN
YARN的核心组件: 1)ResourceManager,扮演Master角色(和HDFS的nameNode很像)主要用于资源分配:RM有两个子组件,分别是Scheduler(Capacity Sch ...
- ecmall 挂件开发实例一
(参考网上相关文章,进行测试点评,下述方法测试成功) 1:在页面上添加要展示的页面模块 <div class="left" area="bottom_foot&q ...