1. 程式人生 > >ionic新手教程第三課-在項目中使用requirejs分離controller文件和server文件

ionic新手教程第三課-在項目中使用requirejs分離controller文件和server文件

做了 不難 定位 nts center str 報錯 去掉 x文件

繼上篇教程中提到的,我們新建一個簡單的tabs類型的Ionic項目。

依據文件夾文件我們知道,系統自己主動創建了一個controller文件和server文件,而且把全部的控制器和服務都寫到這兩個文件中面。

技術分享

這是一個簡單的項目,業務邏輯代碼也非常少。這樣子實現並沒有什麽問題。可是當我們的項目越寫越多。業務邏輯越來越復雜。假設我們還是把全部的控制器寫到同一個文件中面。那可能我們將要面對的就是一個有著上萬行代碼的文件。

每次編輯僅僅能通過搜索keyword來定位了。

所以真正編輯項目的時候我們應該都是把單獨的controller分離出來的。本次教程中使用的是requirejs。

首先我們應該先把單獨的controller提取出來。保存到單獨的文件裏。第一步我們先把代碼拷貝出來,並不做改動。

先無論報錯,我們僅僅是先理解一下,文件分離的內容。

新建兩個目錄用於存放controller和server文件,便於管理。

技術分享

然後我們要做的就是將單獨的controller文件和controllers文件關聯起來。

首先我們先引用requirejs文件。下載requirejs文件放到項目目錄中並在index.html中引用。

然後我們改動controllers/controllers.js文件。使他符合requireJs要求的規範。

技術分享

然後分別改動單獨的controller文件。讓他們也符合規範。

技術分享

通過上面的改動,應該不難發現,要把現有的項目完畢文件分離僅僅須要復制代碼就能夠了,並不須要改動業務邏輯。

接下來我們要做的就是把這些文件關聯起來。

改動controllers文件:

技術分享

這樣子我們就完畢了controller文件的分離和關聯,可是有些controller文件實用到服務。所以我們也要在controllers文件裏關聯服務文件。

在controllers文件裏增加var services= require(‘services/services‘);

相同的做法,改動servers文件,將裏面的服務獨立出來。

改動後的文件文件夾和services文件例如以下。

技術分享

技術分享

這樣子我們就實現了controller和server文件的分離。如今我們將項目中的其它文件也改動成requireJs的規範。並使用requireJs的方式來啟動項目

改動app.js:(僅僅是多了一層封裝返回app對象。裏面的業務不做改動)

技術分享

改動的地方都幾乎相同了。接下來跟著我看一下怎樣使用require的方法啟動Ionic項目。

首先在index文件裏引用requireJs的script標簽中增加 data-main="js/main.js"屬性,表示啟動入口的文件地址。

<script data-main="js/main.js" src="js/require.js"> </script>
新建main.js,這裏不做具體的配置。僅僅是定義了一個簡單的程序入口
技術分享技術分享
說明程序是從bootstrap文件啟動的
新建bootstrap.js這裏做了一些簡單的推斷,假設認為不好理解的話,能夠直接啟動項目
angular.bootstrap(document, [app.name]);
技術分享
改動index.html去除ng-app="starter"把<body ng-app="starter">改動成<body>
註意由於js文件是通過requestjs載入的,所以要把index中對js的引用去掉
<!-- your app‘s js -->
<!--<script src="js/app.js"></script>-->
<!--<script src="js/controllers/controllers.js"></script>-->
<!--<script src="js/services.js"></script>-->
執行項目,正常啟動項目,從界面上看不出與新建項目的差別。

到此本次教程的內容就所有完畢了。
項目Demo地址:http://pan.baidu.com/s/1eSi7huE
假設你還有什麽其它的問題,能夠通過下面方式找到我
新浪微博:小虎Oni
微信公眾號:ionic__

有其它問題的能夠關註一下公眾號提問(右側雙下劃線):ionic__
技術分享
技術分享

ionic新手教程第三課-在項目中使用requirejs分離controller文件和server文件