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中的組件是從屬於模塊的,一個組件不能同時屬於多個模塊。若是遇到多個模塊都須要這個組件的時候,解決方法:若是兩個模塊是父子模塊關係,在子模塊中聲明並導出;不然,建立一個共享模塊,分別導入到須要的兩個模塊中。
歡迎關注本站公眾號,獲取更多信息