1. 程式人生 > >初學者眼中的的Angularjs(一)

初學者眼中的的Angularjs(一)

一、介紹

AngularJS是一款由Google公司開發維護的前端MVC框架,其克服了HTML在構建應用上的諸多不足,從而降低了開發成本提升了開發效率。
1.1 特點

AngularJS與我們之前學習的jQuery是有一定的區別的,jQuery更準確來說只是一個類庫(類庫指的是一系列函式的集合)以DOM做為驅動(核心),而AngularJS則一個框架(諸多類庫的集合)以資料和邏輯做為驅動(核心)。

框架對開發的流程和模式做了約束,開發者遵照約束進行開發,更注重的實際的業務邏輯。

AngularJS有著諸多特性,最為核心的是:模組化雙向資料繫結語義化標籤依賴注入等。
與之類似的框架還有BackBone、KnockoutJS、Vue、React等。
1.2 下載

1、通過AngularJS官網下載,不過由於國內特殊的國情,需要翻牆才能訪問。 2、通過npm下載,npm install angular
3、通過bower下載,bower install angular

1.3 體驗AngularJS

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head> <body> <div ng-app=""> <p>名字 : <input type="text" ng-model="name"></p> <h1>Hello
{{name}}</h1> </div> </body> </html>

1.4 MVC

模型(Model)一般用來處理資料(讀取/設定),一般指操作資料庫。
檢視(View)一般用來展示資料,比如通過HTML展示。
控制器(Controller)一般用做連線模型和檢視的橋樑。

這裡寫圖片描述
MVC更多應用在後端開發程式裡,後被引入到前端開發中,由於受到前端技術的限制便有了一些細節的調整,進而出現了很多MVC的衍生版(子集)如MVVM、MVW、MVP、MV*等。
注:做為初學可以不必過於在意這些概念。

二、模組化

使用AngularJS構建應用(App)時是以模組化(Module)的方式組織的,即將整個應用劃分成若干模組,每個模組都有各自的職責,最終組合成一個整體。

採用模組化的組織方式,可以最大程度的實現程式碼的複用,可以像搭積木一樣進行開發。

2.1 定義應用
通過為任一HTML標籤新增ng-app屬性,可以指定一個應用,表示此標籤所包裹的內容都屬於應用(App)的一部分。
這裡寫圖片描述

2.2 定義模組
AngularJS提供了一個全域性物件angular,在此全域性物件下存在若干的方法,其中angular.module()方法用來定義一個模組。
這裡寫圖片描述
注:應用(App)其本質也是一個模組(一個比較大的模組)。

2.3 定義控制器
控制器(Controller)作為連線模型(Model)和檢視(View)的橋樑存在,所以當我們定義好了控制器以後也就定義好了模型和檢視。
這裡寫圖片描述
模型(Model)資料是要展示到檢視(View)上的,所以需要將控制器(Controller)關聯到檢視(View)上,通過為HTML標籤新增ng-controller屬性並賦值相應的控制器(Controller)的名稱,就確立了關聯關係。

以上步驟就是AngularJS最基本的MVC工作模式。
下圖是AngularJS的結構,學習AngularJS會圍繞下圖的結構展開。
這裡寫圖片描述

三、指令

HTML在構建應用(App)時存在諸多不足之處,AngularJS通過擴充套件一系列的HTML屬性或標籤來彌補這些缺陷,所謂指令就是AngularJS自定義的HTML屬性或標籤,這些指令都是以ng-做為字首的,例如ng-app、ng-controller、ng-repeat等。

3.1內建指令

ng-app 指定應用根元素,至少有一個元素指定了此屬性。 ng-controller 指定控制器
ng-show控制元素是否顯示,true顯示、false不顯示 ng-hide控制元素是否隱藏,true隱藏、false不隱藏
ng-if控制元素是否“存在”,true存在、false不存在 ng-src增強圖片路徑 ng-href增強地址 ng-class控制類名
ng-include引入模板 ng-disabled表單禁用 ng-readonly表單只讀 ng-checked單/複選框表單選中
ng-selected下拉框表單選中

3.2自定義指令
AngularJS允許根據實際業務需要自定義指令,通過angular全域性物件下的directive方法實現。
這裡寫圖片描述