AngularJS(二)——AngularJS主要內容
一、雙向資料繫結
傳統來說,從model中獲取資料,然後手動獲取更新到view中。AngularJS是自動更新。用例子簡單說明:
<span style="font-size:18px;"><!doctypehtml> <htmlng-app> <head> <scriptsrc="js/angular-1.3.0.js"></script> </head> <body> <div> <label>NAME:</label> <input type="text"ng-model="yourName" placeholder="Enter a name here"> <hr> <h1>Hello, {{yourName}}!</h1> </div> </body> </html></span>
效果是:
你在文字框中輸入什麼,Hello後邊就出來什麼,不用自己再去從文字框取值,然後更新到下邊。
二、模組
在JavaScript中,將函式程式碼全部都定義在全域性名稱空間中絕對不是什麼好主意, 這樣做會導致衝突從而使除錯變得非常困難,浪費寶貴的開發時間。
在AngularJS中我們把它封裝在模組(module)中單元內,模組是定義應用的最主要方式。模組包含了主要的應用程式碼。一個應用可以包含多個模組,每一個模組都包含了定義具體功能的程式碼。
使用模組的好處:
保持全域性名稱空間的清潔;
編寫測試程式碼更容易,並能保持其清潔,以便更容易找到互相隔離的功能;
易於在不同應用間複用程式碼;
使應用能夠以任意順序載入程式碼的各個部分。
AngularJS允許我們使用 angular.module() 方法來宣告模組,這個方法能夠接受兩個引數,第一個是模組的名稱,第二個是依賴列表,也就是可以被注入到模組中的物件列表。
angular.module('myApp', []);
// 這個方法用於獲取應用
angular.module('myApp')
三、MVC
為什麼需要MVC?
程式碼規模越來越大,切分職責是大勢所趨
為了複用:很多邏輯都是一樣的,
為了後期維護:修改一塊功能不影響其它功能
MVC只是手段,終極目標是模組化和複用
上篇部落格中“Hello World”例子已經說明。這裡就不再舉例。
四、依賴注入
一個物件通常有三種方式可以獲得對其依賴的控制權:
(1) 在內部建立依賴;
(2) 通過全域性變數進行引用;
(3) 在需要的地方通過引數進行傳遞。
angularJS依賴注入是通過第三種方式實現的。
從功能上看,依賴注入會事先自動查詢依賴關係,並將注入目標告知被依賴的資源,這樣就可以在目標需要時立即將資源注入進去
實現小例子:
html
<span style="font-size:18px;"><!doctypehtml>
<head>
<meta charset="utf-8">
<scriptsrc="js/angular-1.3.0.js"></script>
<scriptsrc="yilaizhuru.js"></script>
</head>
<div ng-app="myApp">
<div ng-controller="MyController">
<buttonng-click="sayHello()">Hello</button>
</div>
</div></span>
js
<span style="font-size:18px;">angular.module('myApp',[])
.factory('greeter', function() {
return {
greet: function(msg){alert(msg);}
}
})
.controller('MyController',
function($scope, greeter) {
$scope.sayHello = function() {
greeter.greet("Hello!");
};
});</span>
效果圖:
五、指令
常用指令:
ng-app - 該指令啟動一個AngularJS應用。
ng-init - 該指令初始化應用程式資料。
ng-model - 此指令定義的模型,該模型是變數在AngularJS使用。
ng-repeat - 該指令將重複集合中的每個專案的HTML元素。
根據自己的需求可以自定義指令,以後會詳解。
總結
以上寫的東西只是各部分的隻言片語,下來會詳細介紹。