昨天遇到一个问题 ,用ng

Expression has changed after it was checked

  

查了一下说在angular2中,这个错误只会在dev开发模式下出现,在pro发布版本中不会出现,通过enableProdMode()可以控制 
在组件中增加这段代码可以去掉这个检查,但是不建议这么做。

import {enableProdMode} from '@angular/core';
enableProdMode();

报错原因是angular4 的一种机制吧。

在dev模式下,额外增加了一次变化检测,在第一轮变化检测周期结束后,会立即进行第二轮变化检测,对比两次检测值,如果不相同,则认为是变化检测引起的。

这个错误经常出现在组件通信时,在输入绑定中(set input,ngOnChanges等等,函数或getter等)修改了其他成员变量导致的,这类函数必须没有副作用。

这句必须添加到main.ts

此处使用该方法前一定要先 import 它,就像 platformBrowserDynamic() 方法一样。

注意,上述代码要放在 platformBrowserDynamic() 方法前使用,否则会报错:

Error: (SystemJS) Cannot enable prod mode after platform setup.
OK,现在已经知道如何切换工作模式了,现阶段还是使用开发模式吧。

  

用ngif 多次判断 Expression has changed after it was checked的更多相关文章

  1. ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.

    ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. 解决方案: 异步更新 ...

  2. angular 中*ngIf 和*ngSwitch判断语句

    <div style="text-align:center"> <h1> Welcome to {{ title }}! </h1> <p ...

  3. 拉姆达表达式 追加 条件判断 Expression<Func<T, bool>>

    public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AND有效,多个AND有效:单个OR无效,多个 ...

  4. [jQuery] 判断复选框checkbox是否选中checked

    返回值是true/false method 1: $("#register").click(function(){ if($("#accept").get(0) ...

  5. 初入angular4——实际项目搭建总结

    前言 接到一个pc端后台项目,还会加入两个安卓同事一起学习和做这个项目,需要带一下他们. 既ng1之后,我就没怎么有过其它后台框架的实际项目经验了,期间用的移动端框架也并非vue.angular系列. ...

  6. Angular 学习笔记 ( CDK - Accessibility )

    @angular/ckd 是 ng 对于 ui 组建的基础架构. 是由 material 团队开发与维护的, 之所以会有 cdk 看样子是因为在开发 material 的时候随便抽象一个层次出来给大家 ...

  7. 关于ExpressionChangedAfterItHasBeenCheckedError

    最近在stackoverflow上似乎每天都有一些关于angular报错‘ExpressionChangedAfterItHasBeenCheckedError’的问题.发生这些问题通常是由于angu ...

  8. angular5自适应窗口大小

    import {AfterViewInit, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2} f ...

  9. Angular变更检测策略报错

    报错信息: ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was ...

随机推荐

  1. 【Git】在GitHub或OSChina上新建项目后,如何在本地第一次push代码到服务器

    场景1:将本地代码push到远程仓库上的master主分支 #初始化git,执行init命令后,默认新建本地分支master git init #关联远程仓库 git remote add origi ...

  2. C++ operator(重载操作符) 【转】

    转自:http://www.cnblogs.com/xiangxiaodong/archive/2012/02/12/2348144.html operator是C++的关键字,它和运算符一起使用,表 ...

  3. 启动项目时,mapper.xml文件没有导入

    原因分析:绑定的statement没有发现,原因是只有mapper接口的java文件,没有xml文件 解决方法:需要在pom文件中进行配置 <!-- 如果不添加此节点mybatis的mapper ...

  4. 集合-LinkedList

    List linkedlist = new LinkedList<>(); LinkedList 底层数据结构是链表. 1. LinkedList 除了实现了List接口外,还实现了双向链 ...

  5. MySQL创建数据库指定字符集

    CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8;

  6. C/C++ 内存对齐原则及作用

    struct/class/union内存对齐原则有四个: 1).数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储 ...

  7. ROI Pool和ROI Align

    这里说一下ROI Pool和ROI Align的区别: 一.ROI Pool层: 参考faster rcnn中的ROI Pool层,功能是将不同size的ROI区域映射到固定大小的feature ma ...

  8. JavaScript数组去重—ES6的两种方式

    说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代 ...

  9. requests库入门10-超时,错误与异常

    在实际发布到生产上的接口测试代码,都会加上超时的设置,当服务器超过一定时间没有响应,会报出超时异常.因为requests会自动等待响应.如果不加上超时的设置,可能脚本会一直卡在那里.. 超时设置在请求 ...

  10. GNU Wget 1.19.1 static built on mingw32

    http://pan.baidu.com/s/1sluFAVj #wget --version GNU Wget 1.19.1 built on mingw32. -cares +digest -gp ...