我試圖使用require.js來延遲加載一些我的依賴關係的角度,我有幾個問題。使用Angular UI路由解決方案加載requirejs模塊
相信下面的代碼應該嘗試加載角neeeds之前寄存器控制器(經由角-UI-路由器):
.state('register', {
url: '/register',
class: 'login',
title: 'Register',
templateUrl: 'app/security/register.view.html',
controller: 'RegisterController',
controllerAs: 'register',
resolve: {
require: function ($q) {
return $q(function (resolve, reject) {
console.log('security/register.controller loading')
require(['security/register.controller'], function() {
console.log('security/register.controller loaded')
resolve()
})
})
}
}
})
但是,當我從登錄狀態切換到狀態寄存器,我在控制檯中下面的輸出:
RouteChanged Login
security/register.controller loading
security/register.controller loaded
RouteChanged Register
Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?p0=RegisterController&p1=not%20aNaNunction%2C%20got%20undefined
因此,即使解決運行,角拋出一個錯誤說,它不能找到RegisterController。
Here's a link to a plunker.正如你所看到的,當你點擊鏈接控制器不加載,並且錯誤消息在控制檯中顯示。
我發現在發佈我的答案後,它看起來非常有用。我會檢查出來,謝謝:) –
調查ocLazyLoad後,它似乎不處理依賴項,所以我必須回去手動指定所有的文件名。真的嗎? –
怎麼樣?因爲在那個例子中,所有的腳本都依賴於模塊的工作。 –