AngularJS學習之MVC模式


AngularJS是谷歌開發維護的前端MVC框架,克服了HTML在構建應用上的不足,從而降低了開發的成本。

在學習AngularJS之前,有必要和之前學過的jQuery進行對比。jQuery是javascript的一個類庫(一系列函數的集合),而AngularJS是javascript的一個框架(一系列類庫的集合)。還有一點重要的區別是,jQuery是以DOM操作為核心,而AngularJS則是以數據和邏輯為核心,這是它們本質上的區別,類似的框架還有BackBone、KnockoutJS、Vue、React。

AngularJS有着諸多特性,最為核心的是:模塊化、雙向數據綁定、語義化標簽、依賴注入等等,這些我在后面的學習中也會,做相應的記錄。

那么在深入學習AngularJS之前,有必要來了解一下MVC模式的概念,以及它在AngularJS中的體現。

什么是MVC?

MVC其實就是一種開發模式,有模型(model)、視圖(view)、控制器(controller)3部分構成,采用這種方式為合理組織代碼提供了方便,降低了代碼間的耦合度,功能結構清晰可見。

  • Model:一般用來處理數據,包括讀取和設置數據,一般指的是操作數據庫。
  • View:一般用來展示數據,就是放數據,比如通過HTML來展示。
  • Controller:因為一個模塊里面可能有多個視圖和模型,控制器就起到了連接模型和視圖的作用。

下面引用網上的一張圖片,清晰的說明了各部分的關系和作用。

MVC.gif

在AngularJS中的體現

模塊化是AngularJS的重要特性之一,所謂模塊化,就是構建應用時,是以模塊的方式進行組織的,就類比搭積木。

一、首先定義應用,采用ng-app屬性指定一個應用,表示此標簽內所包裹的內容都屬於APP的一部分。

<html ng-app="App" lang="en">

二、定義模塊
AngularJS提供了一個全局對象angular,在此全局對象下提供了很多屬性和方法,其中的angular.module()方法用來定義一個模塊

//第一參數表示模塊的名稱,第二個參數表示此模塊依賴的其它模塊
var app = angular.module('app',[]);

其實應用就是一個很大的模塊。

三、定義控制器
控制器作為模型和視圖的橋梁,只要我們定義好了控制器,就相當於定義好了模型和視圖。

app.controller('StudentController',['$scope',function($scope){
//定義模型,這個$scope對象就相當於用來獲取數據的。
$scope.students = [
  {name:'周傑倫',sex:'男',age:39}
];
}]);

控制器定義好了,但是要講模型上的數據展示到視圖上,就需要將控制器關聯到視圖上,通過為HTML標簽添加ng-controller屬性並賦值相應的控制器名稱,就確定了關聯關系。

<table ng-controller='StudentController'>
  <tr><th>姓名</th><th>性別</th><th>年齡</th></tr>
<tr ng-repeat="student in students">
    <td>{{student.name}}</td>
    <td>{{student.sex}}</td>
    <td>{{student.age}}</td>
</tr>
</table>

以上就是MVC模式在AngularJS中的體現了。


免責聲明!

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



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