1.簡述angularjs的優(yōu)缺點
優(yōu)點:
1.模板功能強大豐富,并且是聲明式的纫骑,自帶了豐富的angular指令
2.是一個比較完善的前端mv*框架瘪校,白喊模板澄暮,雙向數(shù)據(jù)綁定,路由阱扬,模塊化泣懊,服務,過濾器麻惶,依賴注入等所有功能馍刮;
3.自定義Directive,比jQuery插件還靈活窃蹋,但是需要深入了解Directive的一些特性卡啰,簡單的封裝容易,復雜一點官網(wǎng)沒有提供詳細的介紹文檔警没,我們可以通過閱讀源代碼? 找到我們需要的東西
4.ng模塊化比較大膽的引入一些Java的一些東西(依賴注入)匈辱,能很容易的寫出可復用的代碼,對于敏捷開發(fā)的團隊來說非常有幫助杀迹,我們的項目從上線到目前亡脸,UI變化很大在摸索中迭代產(chǎn)品,但是js基本上很少改動
缺點:
1.驗證功能錯誤信息顯示比較薄弱树酪,需要很多模板標簽
2.ngView只能有一個浅碾,不能嵌套多個視圖,雖然angular-ui/ui-router · Github解決续语,但是貌似ui-router對于URL的控制不是很靈活垂谢,必須是嵌套式的
3.對于復雜的應用場景,貌似性能有點問題绵载,特別是在Windows下使用chrome瀏覽器埂陆,不知道是不是內(nèi)存泄漏了還是什么問題,奇怪的是IE10下反而很快
4.ng提倡在控制器樓里面不要有DOM操作的代碼娃豹,對于一些jQuery插件的使用焚虱,若果想不破壞代碼的整潔性,需要寫一些directive去封裝一些插件
5.Angular太笨重懂版,沒有讓用戶去選擇一個輕量級的版本
2.angularjs組件之間如何通信
Angularjs為在scope中為我們提供了冒泡和隧道機制鹃栽,$broadcast會把事件廣播給所有子controller,而$emit則會將事件冒泡傳遞給父controller,$on則是angularjs的事件注冊函數(shù)
3.指令scope的綁定策略
1民鼓、@:把當前的屬性作為字符串傳遞薇芝。你還可以綁定來自外層的scope的值,在屬性值中插入{{}}即可丰嘉。下面是代碼夯到。
2、“=”: 與父scope中的屬性進行雙向綁定
3饮亏、“&”:傳遞來自父scope中的函數(shù)耍贾、稍后調(diào)用
4.angular.js的作用域
1.$rootScope是根作用域,controller作用域$scope繼承$rootScope路幸,所有的controller都可以訪問$rootScope
2.父子contorller之間作用域$scope也存在繼承關系荐开,子contorller可以訪問父controller作用域里面的值
3.指令directive也存在scope,默認值false简肴,跟controller作用域共用一個作用域晃听,如果為true ,scope繼承controller $scope