AngularJS 是製作 SPA(單頁面應用程式)和其它動態Web應用最廣泛使用的框架之一。我認為程式員在使用AngularJS編碼時有一個大的串列點應該記住,它會以這樣或那樣的方式幫助到你。下麵是一些我遵守的最佳實踐建議,同時也想推薦給你們。 我堅信有更多的功能也應該是這份串列的一部分,我邀請你們都來提建議或者在下麵評論,從而使這個成為完整的最佳實踐指南。
一、依賴註入:
1. 依賴註入是AngularJS框架最好的特性之一,我們應該經常使用它。當我們需要對我們的應用程式進行測試用例改寫時,它將真正的起到幫助。
2. 為依賴提供別名,這樣他們不會在(JS程式碼)壓縮過程中重新命名,因為在AngularJS依賴是透過命名來實現的(註:AngularJS透過控制器建構式的引數名字來推斷依賴服務名稱的)。
angular.module(‘myApp’).controller(‘MyController’, [‘$scope’, ‘MyService’,function($scope, MyService) {
// controller logic
}
]);
二、作用域
1. 在templates(模板)中scope(作用域)按只讀對待。這就是說即使AngularJS允許我們在templates中編寫程式碼修改scope,我們必須非常謹慎或者就不應該做。
2. 在controllers(控制器)中scope按只寫對待。這就是說一個controllers負責使用另一個元件,就像一個服務,獲取template 將要顯示的資料和把資料寫到scope的一個物件中。
- 作為一個經驗法則,我們必須總是在系結時使用”.“。這就是說我們應該系結到scope的物件,而不是直接的屬性,否則可能會在子$scope導致意外的行為,因為$scope基於Java-script的原型繼承機制。
- 下麵的程式碼我們可以看到,superhero是scope上一個透過Superhero服務傳回的物件,同時相同的物件被用來系結在view(檢視)上。
$scope. superhero = Superheros.get({
superheroId: $stateParams.superheroId
)};
- Scope 的目的是取用 model,而不是成為 model。
- Model是我們的JavaScript物件
三、驗證
1. 在form(表單)標簽中使用“novalidate” 屬性來使用 AngularJS驗證同時關閉HTML5驗證。