在AngularJS中动态加载用于路由的控制器
我需要从某些目录动态加载控制器,即,而不是:在AngularJS中动态加载用于路由的控制器,angularjs,routing,controllers,Angularjs,Routing,Controllers,我需要从某些目录动态加载控制器,即,而不是: $routeProvider.when(path, { templateUrl: 'templates' + path + '.html', controller: 'myController' }); 放置它的目录应指向: $routeProvider.when(path, { templateUrl: 'templates' + path + '.html', controller: 'controllerDir
$routeProvider.when(path, {
templateUrl: 'templates' + path + '.html',
controller: 'myController'
});
放置它的目录应指向:
$routeProvider.when(path, {
templateUrl: 'templates' + path + '.html',
controller: 'controllerDir/myController'
});
我想应该有一个标准的方法。可能有某种方法可以使用类似于qQuery方式(getScript)的动态加载包含控制器的文件?要动态加载控制器,需要使用RequireJS 有一个util可以使将RequireJS集成到AngularJS应用程序更容易 路由有一个属性,可以利用该属性实现控制器的动态加载 此链接将帮助您开始:
在不同的注释中,仅当有大量控制器时才考虑脚本的动态加载。最好提前加载脚本(可以捆绑和缩小),并让浏览器缓存它们,以便为用户提供流畅的体验您也可以使用以下方法: 只需从repo loadctrl.directive.js中获取指令 在模板中:
<div load-ctrl="portalController"></div>
portal.constant('CONTROLLER_PATHS', {
'portalController': {
path: 'static/angular_app/js/controllers/portal.controller.js',
loaded: false
}
})