我們現在開始準備編寫AngularJS應用——phonecat。這一步驟(步驟0),您將會熟悉重要的源代碼文件,學習啟動包含AngularJS種子項目的開發環境,并在瀏覽器端運行應用。
1.進入angular-phonecat目錄,運行如下命令:
git checkout -f step-0
該命令將重置phonecat項目的工作目錄,建議您在每一學習步驟運行此命令,將命令中的數字改成您學習步驟對應的數字,該命令將清除您在工作目錄內做的任何更改。
2.運行以下命令:
如果你不確定你已經安裝了所有的依賴,需要運行一次:
npm install
為了在瀏覽器中運行程序,打開終端/命令行窗口。
npm start
現在,打開瀏覽器窗口,在地址欄輸入http://localhost:8000/index.html就可以訪問到程序了。
這個HTML頁面會顯示 "Nothing here yet!",它是由如下的HTML代碼定義的,這些代碼包括了我們后面需要進一步利用的Angular關鍵元素。
app/index.html:
<!doctype html>
<html lang="en" ng-app>
<head>
<meta charset="utf-8">
<title>My HTML File</title>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
<script src="bower_components/angular/angular.js"></script>
</head>
<body>
<p>Nothing here {{'yet' + '!'}}</p>
</body>
</html>
我們來分析一下這些代碼到底做了什么?
-
1、ng-app指令:
<html ng-app>
這個ng-app屬性代表一個Angular指令ngApp(在Angular約定 spinal-case暨連詞線拼接詞用在定制屬性中,camelCase暨駝峰拼接詞用在指令中,并提供一致的效果)。這個指令標志這個html元素會被Angular用作應用程序的根(root)元素。這將告訴Angular是整個html頁面還是部分元素作為Angular程序。
-
2、AngularJS腳本標簽:
<script src="bower_components/angular/angular.js">
這段代碼將讓瀏覽器下載angular.js腳本,并注冊一個在瀏覽器完整下載HTML并初始化后會執行的回調。當回調執行了,Angular將搜索ngApp指令,如果找到了,就將以ngApp指令定義的DOM作為程序根元素來啟動程序。
-
3、雙大括號(Double-curly)綁定表達式:
Nothing here {{'yet'+'!'}}
綁定告訴Angular需要進行對表達式求值,并把結果插入放置在綁定的DOM內。注意的是這種插入不是一次性的,在接下來的步驟中你會更多的了解體驗到,它會自動感知表達式結果值發生的變化,并及時更新。
AngularJS程序的啟動
使用ngApp指令來自動啟動AngularJS程序簡單且適用于大多數情景。在高級例子中,例如利用腳本加載器,你可以使用 指令來手動控制(參見開發指南的 `imperative / manual way`` 部分)如何啟動程序。
在程序啟動過程中其實有3件重要的事情發生:
- injector用于創建了一個依賴注入
- injector創建了一個根作用范圍(root scope),這將用作程序的數據模型上下文環境
- Angular會"編譯(compile)"ngApp為根開始的DOM元素,并在其下執行指令和發現的綁定
一旦程序啟動完成,他將等待傳入的瀏覽器事件(例如鼠標點擊、鍵盤輸入或者HTTP響應),這都意味著(數據)模型的改變。一旦模型改變發生了,Angular會檢測模型改變(改變被找到),Angular會通過更新視圖在所有受到影響的綁定中反映出變化。
參考資料