前些天,再写红包支付功能的时候, Expression has changed after it was checked.很头秃呀,上图。

Angular的核心是组件化,组件嵌套会形成一棵组件树。因此它的数据流是自顶而下,从父组件到子组件单向流动。

单向数据流向保证了高效、可预测的变化检测。尽管检查了父组件之后,子组件可能会改变父组件的数据使得父组件需要再次被检查,这是不被推荐的数据处理方式。

在开发模式下,Angular会进行二次检查,如果出现上述情况,二次检查就会报错:ExpressionChangedAfterItHasBeenCheckedError(关于这个问题的答案,可以在参考资料中找到)。而在生产环境中,脏检查只会执行一次。

我就是父子组件互相传值,操作频繁,子组件改变了父组件的值,所以脏检查二次检查就报错了。

开发模式下,忍受一下,生产环境没问题,但是能不以这样数据处理方式,就不要这样。

后记:

因为Angular是单向数据流,所以子组件的ts文件只能接收父组件的数据,而不能进行处理,但是html文件可以处理数据,

所以就以方法形参的方式,把数据传到ts文件里,进行处理。

呵呵,然后就报了上述错误。

解决方法:关于ExpressionChangedAfterItHasBeenCheckedError

Angular之Error: ExpressionChangedAfterItHasBeenChecked相关推荐

  1. Angular:error TS2717: Subsequent property declarations must have the same type. Property ‘contentRe

    解决方案 在tsconfig.json的compilerOptions选项中添加如下内容"skipLibCheck": true. 如下图所示 之后重新启动项目. 如下图启动成功

  2. angular面试题及答案_关于最流行的Angular问题的StackOverflow上的48个答案

    angular面试题及答案 by Shlomi Levi 通过Shlomi Levi 关于最流行的Angular问题的StackOverflow上的48个答案 (48 answers on Stack ...

  3. Angular--页面间切换及传值的四种方法

    1. 基于ui-router的页面跳转传参 (1) 在AngularJS的app.js中用ui-router定义路由,比如现在有两个页面,一个页面(producers.html)放置了多个produc ...

  4. Pixhawk原生固件PX4之位姿控制算法解读

    参考文献:Minimum Snap Trajectory Generation and Control for Quadrotors PX4中多旋翼无人机的控制分为姿态控制和位置控制两个部分. 大致解 ...

  5. Pixhawk之姿态控制篇

    一.开篇 姿态控制篇终于来了.来了.来了~~~ 心情爽不爽?愉悦不愉悦?开心不开心? 喜欢的话就请我吃顿饭吧,哈哈. 其实这篇blog一周前就应该写的,可惜被上一篇blog霸占了.但是也不算晚,整理了 ...

  6. Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)

    一.开篇 姿态控制篇终于来了.来了.来了~~~ 心情爽不爽?愉悦不愉悦?开心不开心? 喜欢的话就请我吃顿饭吧,哈哈. 其实这篇blog一周前就应该写的,可惜被上一篇blog霸占了.但是也不算晚,整理了 ...

  7. AngularJS中页面传参方法

    1.基于ui-router的页面跳转传参 (1) 用ui-router定义路由,比如有两个页面,一个页面(producers.html)放置了多个producers,点击其中一个目标,页面跳转到对应的 ...

  8. angularjs项目的页面跳转如何实现

    链接:https://www.zhihu.com/question/33565135/answer/696515 Angular页面传参有多种办法,根据不同用例,我举5种最常见的: PS: 在实际项目 ...

  9. PX4二次开发——PX4程序架构

    PX4程序架构 一.从RCS启动脚本可以看出哪些东西 ​ 启动脚本是一个神奇的东西,它能够识别出你对应的飞机类型,加载对应的混控器,选择对应的姿态.位置估计程序以及控制程序,初始化你需要的驱动程序.下 ...

最新文章

  1. 【seaborn】(1) 数据可视化,绘图风格、布局
  2. socket 服务器浏览器与服务器客户端实例
  3. 敏捷个人实践第18次活动:选择朋友
  4. 序列到序列网络seq2seq与注意力机制attention浅析
  5. 最全的时间类解析。 SimpleDateFormat + Date() 和 DateTimeFormatter + LocalDate()的区别与使用场景
  6. 怎么在安卓布局里设置滚动字体_Get新技能|如何在手机上设置文字版拼音?
  7. NTV Media Server G3性能测试
  8. java 生成apk包_Eclipse导出安卓apk文件的图文教程
  9. mysql schema数据混乱_MySQL之Schema与数据类型优化
  10. Shiro学习总结(2)——Apache Shiro快速入门教程
  11. mysql 局域网存储_MySQL 存储过程
  12. CSS3学习笔记--line-height:150%与line-height:1.5的真正区别
  13. [开发笔记]-FireWorks常用操作快捷键
  14. 四叉树数据编码结构在电子狗中的应用
  15. Selenium核心原理及浏览器实战
  16. Word分栏出现空白怎么解决
  17. 劈荆斩棘:Gitlab 部署 CI 持续集成
  18. 《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第12章 课后习题
  19. (plugin uglify) Error: Unexpected token: keyword «const»
  20. 让你的电脑也识得二维码图片(一)

热门文章

  1. 《数据库SQL实战》查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
  2. OpenCV实现视频人脸检测
  3. Machine Learning On Spark——基础数据结构(二)
  4. Spark源码分析之Worker
  5. 如何利用TensorFlow.js部署简单AI版「你画我猜」
  6. Axure之全局变量
  7. 使用lombok来简化你的Java Bean
  8. Vijos P1696 数与连分数【连分数】
  9. 20160411作业
  10. Linux批量部署 EXPECT 使用