Angular1.x 概念解析

1、AngularJs主要解決的是邏輯問題,實現數據雙向綁定,實現modelview的雙向刷新,是比較完美的html模板引擎,實現邏輯和view的分離。

2、AngularJs主要適用於單頁應用。

3、代碼結構清晰,邏輯清晰。

4、編寫的時候應該儘量少用其他庫和框架,實在不能用angular解決了在考慮使用其他庫和框架

5、controller只負責邏輯處理業務邏輯,不要在其中進行dom操作,controllerscope中的變量時可以繼承的,普通變量只能繼承,不能從子controller改變父controller的中的變量,但是如果變量是對象,那麼自controller中對變量的改變,會同時改變父controller中的變量。非父子Controller中要共享數據和函數,採用serviceController中需要進行事件傳播採用event bus

6、filter使用在dom上,負責對顯示的數據進行格式化;directive使用在dom上,主要用於dom操作;service主要爲其他模塊提供可注入的服務。

7、Angular的模塊使用依賴注入,定義後angular將自動加載並且加載模塊。

8、在非scope的作用域中改變scope的變量值,使用$apply()函數進行model的刷新,進而使viewmodel都更新。

9、最先執行的函數是configconfig中只能注入constant類型和provider類型的服務,在config中主要進行一些全局配置和路由。

10、            在依賴的模塊都加載完成後會執行run,可在此函數中先行定義一些變量和數據。

11、            有多重方式定義service,其中value定義無法引入其他服務,相當於直接定義一個對象;constant定義同value,並且定義後的其中的值是不能改變的;servicefactoryprovider三者主要是封裝不一樣,定義的服務概念一樣。

12、            支持友好的restful風格的urlget\put\post\delete,提供resource服務來簡化資源的處理,有比較完善的promise處理方案。

13、            儘量只在directive中和controller中來使用scope,以免造成代碼的混亂。

14、            內部集成了jqlite,來進行dom的操作。

15、            模塊定義的時候注入的是模塊,controllerservice等中注入的是模塊中定義的service,頁面中使用的是模塊中的filter(在dom上直接使用)、directive(在dom上直接使用)等,只有模塊注入了,才能將其內部定義的servicefilterdirective注入;一般來說在app模塊定義的時候將所有模塊注入,controllerdirective中一般只需要注入servicefilter中不能注入。

 

 

在使用中碰到的問題:

1、對於彈出層要使用獨立地址比較複雜,比如說login是一個彈出層,但是又給它配了/login的地址,這種處理起來有些複雜

2、ng-view只能有一個,用其插件ui-angular可以實現多個nv-view

3、版本過於混亂,多個版本api有比較大的差別

4、由於其內部採用全監聽模式,每次改動一個model會更新所有的model,當model達到一定數量後,性能上有些吃力

5、animate支持不友好,沒有完善的回調模式,animate的性能也不盡人意,有時候需要人爲的邏輯控制

6、http中默認會去掉結尾的“/”,這個在每個版本中處理方法不一樣


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章