# Angular
視圖我們有了模塊和控制器之后,內容和交互邏輯就已經基本確定了,接下來我們就得把它們展示給用戶了,這時就用到“視圖”(view)。CSS并不在Angular的范圍內,在實踐中,常常結合一套成熟的CSS架構來做,比如Bootstrap就可以和Angular結合得非常好。Angular中實現視圖的主體是模板。最常見的模板形式當然是HTML,也有通過Jade等中間語言編譯為HTML的。
模板中包括靜態信息和動態信息,靜態信息是指直接寫死(hard code)在模板中的,而動態信息則是對scope中內容的展示。展示動態信息的方式有兩種:
* 綁定表達式:形式如{{username}},綁定表達式可以出現在HTML中的文本部分或節點的屬性部分。
* 指令:形式如<span ng-bind="username"></span>,事實上任何指令都可以用來展示動態信息,展示的方式取決于指令的內在實現邏輯。視圖中的綁定表達式或指令中用到的變量或函數都是$scope中的一個屬性或方法,上面兩個表達式綁定的都是$scope.username,但是也可以綁定到方法,如$scope.getFirstName()。綁定到方法是一種很常用的方式,但是如果使用不當,也可能導致一些很難追查的Bug。特別要注意不要在方法中返回一個新對象或新數組,否則會出現“10$digest iterations reached.”錯誤。
另一個要點是,在表達式中無法直接使用window對象下的全局屬性或方法。Angular這樣的設計可以確保視圖的局部性,以免受到意料之外的干擾而出現Bug。如果確實需要調用,請在Controller中簡單包裝一層。除了展示信息之外,常常還需要對信息進行格式化,比如把一個Date對象格式化為“年-月-日”格式或“年-月-日 時:分:秒”格式。一個分層清晰的系統,在scope中通常是沒有格式的概念的,想要顯示成什么格式是視圖層的事情。這樣的設計可以提高Model層的內聚性(只做一件事),把與此相關的需求變更在視圖層處理,可以提高Model層的穩定性。Angular中對信息進行格式化的機制是過濾器(Filter),如:{{birthday|date}}。
- Angular簡介
- angular1資料網站
- Angular初級部分
- 打破傳統的前端
- Angular基本組成部分
- Angular環境搭建
- Angular項目測試
- Angular基礎概念
- Angular模塊
- Angular控制器
- Angular指令
- Angular表達式
- Angular視圖
- Angular基礎實戰
- Angular模塊創建和使用
- Angular控制器和模型創建
- scope對象
- 控制器中調度window對象和document對象
- Angular表達式調度過濾器
- Angular中的ng模塊全局方法
- Angular模板應用
- 使用指令復制元素
- 使用指令隱藏顯示元素
- Angular指令ng-if
- ng-src和ng-href
- Angular處理樣式
- Angular作用域事件傳遞
- 表單中的元素
- Angular初學者常見的坑
- 再論雙向綁定
- Angular中級部分
- Angular路由機制
- ui-router管理狀態
- ui-router狀態嵌套和視圖嵌套
- ui-router多個命名的視圖
- ui-router路由控制
- 自定義指令
- 自定義過濾器
- Angular項目目錄結構
- Angular服務
- Angular高級部分
- Angular依賴注入
- README