I just integrated ocLazyLoad to load a js file which defines AMD dependencies. Those dependencies are not loaded correctly by require.js: the ".js" suffix is not appended.
Here's my app.js
(loaded itself by require.js) that contains the setup of ocLazyLoad:
define(['angular', 'components', 'lazy-load', 'ui-router', 'ui-bootstrap', 'ui-bootstrap-tpls', 'home',
'site'], function(angular, components) {
'use strict';
// We must already declare most dependencies here (except for
// common), or the submodules' routes will not be resolved
return angular.module('app',
['ui.router', 'ui.bootstrap', 'ui.bootstrap.tpls', 'search.home', 'search.site', 'oc.lazyLoad']
)
.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) {
$ocLazyLoadProvider.config({
loadedModules: ['app'],
jsLoader: require
});
}])
.run(['$ocLazyLoad', function($ocLazyLoad) {
// components: [ {
// "name" : "explore",
// "files" : [ "/assets/javascripts/explore/main.js" ]
// } ];
$ocLazyLoad.load(components);
}]);
});
The lazy loaded explore/main.js
looks like this:
define(['angular', 'ui-router', './routes', './controllers'], function(angular, uiRouter, routes, controllers) {
'use strict';
var mod = angular.module('explore.home', ['ui.router', 'ui.bootstrap', 'ui.bootstrap.tpls', 'explore.home.routes']);
mod.controller('HeaderCtrl', controllers.HeaderCtrl);
mod.controller('FooterCtrl', controllers.FooterCtrl);
return mod;
});
In the same directory there are the routes.js
and controllers.js
as declared as dependencies.
Unfortunately, after loading the main.js
require.js loads /assets/javascripts/explore/routes
and /assets/javascripts/explore/controllers
, without appending the .js
.
I'm using require.js 2.1.14, angular.js 1.2.16 and the latest ocLazyLoad.
Can you help with this issue?