『AngularJS』一點小小的理解


AngularJS 是一個前端的以Javascript為主的MVC框架。與AngularJS相類似的還有EmberJS。

隨着時代在進步,各種各樣的開發理念與開發框架不斷的提出與發展,而就目前來說,除了游戲、IM(類似QQ)、Office這類軟件之外,新出的軟件應用開始出現兩個方向,一個是以Web為主的Web APP,一個是以移動端為主的移動APP。且,現有也有一種聲音認為Web APP早晚會取代移動端原生APP,從而一統計算機軟件的應用方式。暫且不論這種說法是否會成為現實,Web APP的火爆可見一斑。

三年前,我編寫的Web軟件,還都是以后台為主,前台頂多用一下jQuery來進行幾個簡單的動態效果。兩年前,我接觸ExtJS,知道還有這么一種Javascript框架能夠實現完整的UI訂制,從而只需要使用Ajax傳數據就可以了。

現在(實際上已經出來很長時間了),我了解到EmberJS以及AngularJS這種將前端的UI構建過程拆分為之前只在后端使用過的MVC的模式。從另一個角度說,現在是把原先的MVC中的V再度拆分一個MVC的應用。

所以,我認為,無論從哪個角度來考慮,單獨的將Angular提出來,進行思考和學習是很有必要的。

AngularJS是什么?

AngularJS是一個由Google支持的Web App前端MVC框架。

AngularJS包括什么?

從AngularJS的官方文檔中看到,它主要包括如下幾個概念:

  • Template —— 模板
  • Directive —— 指令
  • Filter —— 過濾器
  • Controller —— 控制器
  • Scope —— 范圍
  • Service —— 服務
  • Module —— 模塊

Template Directive Filter這三個主要與“視圖”有關。 Controller Scope Service這兩個主要與“控制器有關”。 Module用於結構化項目。

注意:就像上面看到的那樣,在AngularJS中,沒有找到有關Model層的東西!

下面是對各個概念的理解以及如何應用的想法。

  • Directive是一種屬性,寫在HTML標簽當中,用戶標識出模板中一些特殊的東西。比如用於顯示“部分模板”的<div ng-view></div>
  • Filter根據官網的解釋,是用於控制視圖中的元素如何顯示,或者說顯示成什么樣的。
  • Template是視圖層的具體載體,在Template中可以寫一些輔助的邏輯,如ng-if等
  • Controller是控制器,根據官方文檔的建議,不應該在Controller中寫太復雜的東東,在控制器中只寫有關業務邏輯的就可以了。
  • Scope,這個東西在看控制器的介紹的時候看到,在個人理解來看,應該是主要用於進行視圖與控制器的數據操作,或者認為是用於打通視圖層與控制器的一個東東。
  • 由於文檔中寫到,不建議在控制器中寫太復雜的邏輯,所以我們應該把所有的可供復用的邏輯寫到Service(服務)當中。然后我們可以利用AngularJS框架本身的DI(依賴注入)功能將Service注入到具體的控制器中。
  • Module,這個東西類似Java的類庫的概念,我們寫的所有的控制器、過濾器、服務等都得加到Module中,沒什么好說的~

這里要注意一個問題——模型。

按照個人的理解,不論AngularJS再怎樣,其數據的直接來源還是服務器,而服務器傳數據的話,現在比較流行使用JSON格式,所以,就模型層來說,我們只要利用Service從服務器中獲取數據,然后將其解析給在Controller中對應的Scope就行了。剩下的就是AngularJS內部處理,將數據自動綁定到前台了~

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM