1. 程式人生 > >ionic入門教程第四課-使用$controllerProvider按需載入controller

ionic入門教程第四課-使用$controllerProvider按需載入controller

繼上篇教程我們已經建立了一個使用requireJs啟動和分離檔案的Tabs型別的Ionic專案

今天我將介紹一下,如何使用$controllerProvider按需載入controller檔案

其中將用到的$q有不明白的朋友,可以找我,我估計會在第五課的時候講到這個內容

首先在專案中編寫路由的地方定義$controllerProvider,如果專案比較大的可以把router檔案分離出來,方法和我們上一節課的類似,因為我們這個專案比較簡單,所以我這裡不做分離還是保留在app.js檔案中。

在app.config的函式中加入

app.registerController = $controllerProvider.register;
記得匯入引用$controllerProvider
然後修改路由,在路由中增加在路由前執行(resolve)
這裡因為我們是按需載入JS檔案,所以我們要在路由前完成對應controller檔案的載入
修改為
這裡的resolve屬性是指在路由執行前執行的內容。
我們需要在這裡面定義一個使用$q方式載入js檔案的方法
因為多個路由配置都要使用到這個方法,所以我們將這個方法提取出來
我這裡還是將他放在當前檔案中
給所有的路由需要controller的都配置上檔案地址
現在我們需要將controller檔案修改成延時載入的形式
首先登出掉controllers檔案中的引用。
然後修改controller檔案,將返回的return ctrl 修改成使用app.registerController方法延時載入的方式,即
$controllerProvider.register的方法
全部修改完畢,我們執行程式。
開啟控制器可以檢視當我們進入首頁的時候,controllers資料夾中只下載了controllers檔案和GameCtrl檔案
當我們切換tab到Chats時,又下載了ChatsCtrl檔案
到此我們的按需載入就介紹完畢了。
如果你還有什麼其他的問題,可以通過以下方式找到我
新浪微博:小虎Oni
微信公眾號:ionic__

有其他問題的可以關注一下公眾號提問(右側雙下劃線):ionic__