入門源碼有三個基本項目,start v1.0蚌卤、start v2.0筐付、start v3.0
statr v1.0入門項目,適合新手浆兰,代碼寫法簡單易懂
statr v2.0進階項目磕仅,采用分層方式
statr v3.0目標項目,采用分層簸呈、按需加載模式榕订,符合當下主流開發(fā)模式。
下面主要介紹v3.0
效果圖鎮(zhèn)樓
項目目錄結(jié)構(gòu)
目錄結(jié)構(gòu)
項目采用Bootstrap布局蜕便,框架采用angularjs劫恒,IDE為VS2010,數(shù)據(jù)來源為讀取json文件
配置項目
頁面采用按需加載模式轿腺,所以angular要手動啟動两嘴,頁面上不需要添加ng-app(添加了會報錯),同時導入requirejs族壳,配置入口文件
index.html(首頁)
主要代碼:
解析:data-main="js/common/main"?代表加載完Requirejs后以main.js文件為入口文件(加載文件默認為.js后綴憔辫,省缺)
main.js(入口文件)
后期補充(按需加載樣式表)
解析:
require.config({}) 加載配置
baseUrl:路徑前綴,默認為require所在目錄仿荆,一般設為項目根目錄(是在理解不了相對路徑可以設成域名加端口)
paths:文件別名贰您,為提高編碼效率坏平,以別名形式代替長長的文件路徑(文件后綴默認為.js,省缺)
shim:配置依賴
urlArgs:參數(shù)锦亦,幫助調(diào)試舶替,清除緩存
deps:優(yōu)先加載的文件
正式加載
define(["angular", "app.module", "app.config"], function?(angular) {
????angular.element(document).ready(function?() {
????????angular.bootstrap(document, ["phonecatApp"]);
????});
});
在加載完angular、app.module和app.config后手動啟動angular杠园,應用的作用域為整個文檔顾瞪,應用名稱為phonecatApp
可以把上面加載的三個文件理解三個命名空間
app.module.js(根模塊)
這里再加載完相應模塊后配置根模塊,根模塊名稱為phonecatApp抛蚁,和前面手動啟動的應用名稱要一致陈醒,配置完成把該模塊暴露出去,方便其他邏輯調(diào)用
PS:根模塊所依賴的子模塊必須在開始的時候全部加載篮绿,如果添加了模塊需要來這里加載并添加依賴(控制器孵延、指令等不需要)
app.config.js(根配置、路由配置)
在加載完app.module(根模塊)后亲配,開始對其進行配置
app.requireJs為自定義方法尘应,用于異步加載文件,會用即可
app.config 配置路由(暫時無法使用component形式)
resolve重點吼虎,在加載時觸發(fā)犬钢,可自定義開發(fā)
phoneList.module.js(列表模塊)
配置列表模塊并返回
ps:注意config部分,用于暴露注冊方法思灰,方便注冊控制器和服務等
phoneList.module.js(列表控制器)
注冊列表控制器蜓萄,其中Phone為自定義服務操漠,內(nèi)部封裝了http請求
phoneDetail.module.js(詳情模塊)
同列表模塊
phoneDetail.controller.js(詳情控制器)
同列表控制器
phone.server.js(自定義服務)
依賴angular-resource赃份,服務名稱為Phone择膝,設計風格為RESTful
模塊拓展
當要添加新模塊的時候,先聲明新模塊油湖,然后在根模塊配置依賴巍扛,再到根配置文件設置對應視圖與動態(tài)加載控制器(后期添加:同同時也要去main.js里配置模塊依賴的樣式表,實現(xiàn)動態(tài)加載css)
補充:
代碼已經(jīng)發(fā)生了一些小變化乏德,把列表控制器改成了組件形式撤奸,其次項目版本也發(fā)生了變化
該項目采用的是requirejs按需加載所需文件,其實也可以用oclazyload實現(xiàn)懶加載喊括,兩者思路差不多胧瓜,可以單模塊也可以使用多模塊,更可以實現(xiàn)自定義組件