最近在stackoverflow上似乎每天都有一些关于angular报错‘ExpressionChangedAfterItHasBeenCheckedError’的问题.发生这些问题通常是由于angular的开发者不懂angular变更检测的工作原理,以及为什么这个检测的报错是有必要的.很多开发者甚至认为这是angular的bug.但其实不是的.这是一个用于防止模型数据和ui之间数组不一致的一个警告机制,以便不让用户在页面上看到陈旧的或者错误的数据. 这篇文章解释了该报错和检测机制的潜在原因,提…
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. 解决方案: 异步更新(建议使用) 强制进行变更检测,但是会触发子组件的变更检测,再次导致父组件属性改变 Parent.Component.ts @Component({ selector:"app-parent" }) export class ParentComponent implements OnIni…
一个angular组件,他的生命周期是这样的 update bound properties for all child components/directives call ngOnInit, OnChanges and ngDoCheck lifecycle hooks on all child components/directives update DOM for the current component run change detection for a child compone…
前言 接到一个pc端后台项目,还会加入两个安卓同事一起学习和做这个项目,需要带一下他们. 既ng1之后,我就没怎么有过其它后台框架的实际项目经验了,期间用的移动端框架也并非vue.angular系列.react,包括es6.webpack等也都并不熟悉. 公司一个其它后台项目使用了vue,偶尔我会维护一下但是总体来说对体系不熟悉. 一直比较喜欢angular,应该是有过ng1框架搭建的经验的原因(前面也有写过博客),学习过ng2和ng4的官方demo,总的来说照着抄写一遍意义不大,必须要用于实际…
#### 最专业,最全面的angular的学习文档 https://www.jianshu.com/p/f0f81a63cbcb ### https://www.cnblogs.com/xiaoweihuang/p/9794478.html ##### angular的指令传参数. ##### angular中度了解. #### rxjs可以避免angular的单向数据流. angualr的编程是面向类的,只要provider注入就是一个新的对象.angular是单向数据流. #### 如果父组…
ngFor不能用于Object rowspan colspan不能绑定变量,要用attr.colspan https://stackoverflow.com/questions/35615751/why-is-colspan-not-a-known-native-attribute-in-angular-2/35616510 定义函数要仔细,注意引用对象的问题 ,可以用Object. assign 所有使用的东西都要在模块中注册,除了服务 ng-bootsrap modal弹窗一直没出来,问题:…
Angular-cli 构建应用 的一些配置 标签(空格分隔): Angular 直接使用 ng build --prod --build-optimizer --base-href=/ 来发布 base-href可以设置服务器上的某个子路径,使用 ng build --base-href=/my/path/ 如果打包静态文件(js和css)不放在和index.html同一路径下,可以在.angular-cli.json配置文件apps属性下增加deployUrl,等同于webpack的publ…
什么是双向绑定 如图:   双向绑定.jpg 双向绑定机制维护了页面(View)与数据(Data)的一致性.如今,MVVM已经是前段流行框架必不可少的一部分. Angular2中的双向绑定 双向绑定,也是Angular2的核心概念之一,Angular2的双向绑定是这样的: data=>view:数据绑定,模板语法是 [] view=>data:事件绑定,模板语法是 () Angular其实并没有一个双向绑定的实现,他的双向绑定就是数据绑定+事件绑定,模板语法是 [()] . Angular2官…
报错信息: ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'null: 8'. Current value: 'null: 4'. 报错触发: 在渲染时,连续多次修改Expression ,出现该问题 报错原因:Angualr中的change detection strategy,大概意思是在变更检测之后时…