cuowu
- 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弹窗一直没出来,问题:安装的bootstrap版本不对
- 组件做为modal内容的时候,须要设置成entryComponents
- “/animations/browser”’ has no exported member ‘ɵDomAnimationEngine’ BrowserAnimationModule模块的版本问题,@angular/animations 4.1.3没有问题
- expression changed after it has been checked error 错误,能够参见Everything you need to know about the
ExpressionChangedAfterItHasBeenCheckedError
error
- 后端返回文件,前端如何下载,responseType:blob转成blob而后下载
- button忘了加type=“button”属性,按enter的时候就会触发。由于button在IE以外的浏览器默认属性为submit,因此触发了。
-
Angular开发者经常会犯如下的错误:前端
- 框架名称:没有Angular 1和Angular 2, 只有AngularJS和Angular。Angular的第三方库,建议用ngx-为前缀,而不是ng2-。由于Angular每6个月会更新一次,你懂的。。。
ngOnChanges
监听输入对象的变化,但仅限于它的引用,也就是说,若是对象的某个属性发生变化,Angular是不会触发onChanges
的。解决方法:用ngDoCheck
钩子代替;用不可变对象做为输入;将对象分解为基本变量;使用订阅对象。
- 使用订阅对象时,别忘了在
ngOnDestroy
钩子中销毁,不然会形成内存泄漏。
- 重复/没必要要的取消订阅:有些状况下Angular会自动销毁订阅对象,好比使用async管道的时候;好比短暂时间的订阅
Observable.timer(1000).subscribe(…)
和http.get(‘http://medium.com’).subscribe(…)
;再好比RxJS自带的方法,take(n)
, takeWhile(predicate)
, first()
以及first(predicate)
等。
- 服务应该在模块注入仍是组件注入:在模块注入的话,该模块下只会生成一个服务实例,并在模块下的全部组件共享;若是在组件中注入,每实例化一次组件,服务也会实例化一次。
- 直接修改DOM:Angular再也不是一个web框架,而是一个平台。Angular应用能够在浏览器,服务端,甚至客户端上运行。因此,不要直接取DOM元素,用
ElementRef
,设置属性用this._renderer2.setElementProperty
。
- 在多个模块中声明组件:Angular中的组件是从属于模块的,一个组件不能同时属于多个模块。若是遇到多个模块都须要这个组件的时候,解决方法:若是两个模块是父子模块关系,在子模块中声明并导出;不然,建立一个共享模块,分别导入到须要的两个模块中。
欢迎关注本站公众号,获取更多信息