AngularJS 應(yīng)用模塊化的使用
一.模塊化的好處
(1)實(shí)現(xiàn)邏輯更清晰、可讀性強(qiáng);
(2)團(tuán)隊(duì)開(kāi)發(fā)分工明確,容易控制;
(3)充分利用可以重用代碼;
(4)抽象出可公用的模塊,可維護(hù)性強(qiáng);
(5)模塊化的遺留系統(tǒng)方便組裝開(kāi)發(fā)新的相似系統(tǒng).
二.AngularJS模塊的定義
(1)angular對(duì)象的module()使用方法:
// 定義一個(gè)無(wú)依賴(lài)模塊
angular.module('appModule',[]);
// 定義一個(gè)依賴(lài)module1、module2的模塊
angular.module('appModule',['module1','module2']);
(2)angular.module()方法:接收三個(gè)參數(shù)
第一個(gè)為模塊的名稱(chēng),第二個(gè)是數(shù)組,表示模塊依賴(lài)的模塊的名稱(chēng)。如果不需要依賴(lài)其他模塊,傳入空數(shù)組即可.第三個(gè)參數(shù)可選,接收一個(gè)方法,用于對(duì)模塊進(jìn)行配置,作用和模塊實(shí)例的config()方法相同.
angular.module()方法返回一個(gè)模塊實(shí)例對(duì)象,可以調(diào)用該對(duì)象的controller()、directive()、filter()等方法向模塊中添加控制器、指令、過(guò)濾器等其他組件.
(3)頁(yè)面引用模塊:ng-app指令
<html ng-app="appMobile">
三.使用模塊解決命名沖突問(wèn)題
兩個(gè)頁(yè)面共用一個(gè)js文件,控制器的定義放在common.js中,當(dāng)兩個(gè)頁(yè)面定義的控制器名稱(chēng)相同時(shí)就會(huì)產(chǎn)生沖突,AngularJS中通過(guò)使用模塊化來(lái)解決命名沖突.調(diào)用 angular.module()方法創(chuàng)建兩個(gè)模塊實(shí)例,分別調(diào)用這兩個(gè)模塊實(shí)例的controller()方法創(chuàng)建兩個(gè)名稱(chēng)相同的控制器,但這兩個(gè)控制器屬于不同的模塊.雖然html頁(yè)面中的控制器名稱(chēng)都是UserController,但是分屬于不同的模塊,因此避免了沖突.
var loginModule = angular.module("loginModule",[]);
loginModule.controller("UserController",function($scope,$log){
$scope.uname = "login";
$scope.pword = "admin";
$scope.submit = function(){
alert("登錄模塊: UserController");
}
})
var registerModule = angular.module("registerModule",[]);
registerModule.controller("UserController",function($scope,$log){
$scope.uname = "register";
$scope.pword = "admin";
$scope.submit = function(){
alert("注冊(cè)模塊: UserController");
}
})
四.模塊化的最佳實(shí)踐
假設(shè)項(xiàng)目名稱(chēng):app,包含login和register兩個(gè)模塊:
├─app │ │ │ ├──css---------------CSS樣式 │ ├──img---------------圖片資源 │ ├──js----------------JS代碼 │ │ common.js // 公共JS代碼 │ │ │ ├──modules │ │ │ │ │ ├─login----------------登錄模塊 │ │ │ │ │ │ │ │ loginModule.js----------------登錄模塊定義 │ │ │ │ │ │ │ ├─css │ │ │ ├─js │ │ │ │ directives.js │ │ │ │ filters.js │ │ │ │ controllers.js----------------控制器定義 │ │ │ │ │ │ │ │ │ │ │ └─views │ │ │ login.html │ │ │ │ │ └──register----------------注冊(cè)模塊 │ │ │ │ │ │ registerModule.js----------------注冊(cè)模塊定義 │ │ │ │ │ ├─css │ │ ├─js │ │ │ directives.js │ │ │ filters.js │ │ │ controllers.js----------------控制器定義 │ │ │ │ │ │ │ │ └─views │ │ register.html │ │
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Angularjs 依賴(lài)壓縮及自定義過(guò)濾器寫(xiě)法
這篇文章主要介紹了Angularjs 依賴(lài)壓縮及自定義過(guò)濾器寫(xiě)法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
angular中的http攔截器Interceptors的實(shí)現(xiàn)
本篇文章主要介紹了angular中的http攔截器Interceptors的實(shí)現(xiàn)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
AngularJS入門(mén)教程之?dāng)?shù)據(jù)綁定用法示例
這篇文章主要介紹了AngularJS之?dāng)?shù)據(jù)綁定用法,結(jié)合實(shí)例形式分析了AngularJS基于內(nèi)置指令ng-model實(shí)現(xiàn)數(shù)據(jù)綁定的操作技巧,需要的朋友可以參考下2016-11-11
Angular2使用Angular CLI快速搭建工程(一)
這篇文章主要介紹了Angular2使用Angular CLI快速搭建工程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
如何使用AngularJs打造權(quán)限管理系統(tǒng)【簡(jiǎn)易型】
這篇文章主要介紹了使用AngularJs打造權(quán)限管理系統(tǒng)【簡(jiǎn)易型】的相關(guān)資料,需要的朋友可以參考下2016-05-05
angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動(dòng)效果的相關(guān)資料,angularjs modal模態(tài)框創(chuàng)建可拖動(dòng)的指令,感興趣的小伙伴們可以參考一下2016-01-01
如何處理Angular?錯(cuò)誤消息ERROR?Error?NullInjectorError?No?provid
這篇文章主要介紹了如何處理Angular?錯(cuò)誤消息ERROR?Error?NullInjectorError?No?provider?for?XX2023-07-07

