我试图使用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后,它似乎不处理依赖项,所以我必须回去手动指定所有的文件名。真的吗? –
怎么样?因为在那个例子中,所有的脚本都依赖于模块的工作。 –