角度控制器未使用OcLazyLoad和ngRoute加载
Angular controller not loading using OcLazyLoad and ngRoute
我有一个应用程序,它最初加载了大量脚本,随着开发的进行,列表越来越多。我想在需要时延迟加载包含控制器的脚本。我使用OcLazyLoad和ngRoute作为路由选项(我确实尝试了ui路由,它实际上有相同的最终结果,但导致了其他应用程序问题)。延迟加载和路由工作正常,只有在需要时才加载脚本和视图,但问题是没有加载控制器(参数"caseReviewController"没有),所以控制器似乎不存在。
这是我的app.js文件中的一个简单版本。。。
var app = angular.module('dashboard', ['oc.lazyLoad', 'ngRoute', 'LocalStorageModule']);
app.config(function ($ocLazyLoadProvider, $routeProvider, localStorageServiceProvider) {
$ocLazyLoadProvider.config({
loadedModules: ['dashboard'], modules: [
{
name: 'caseReview',
files: ['js/controllers/case-review.js']
}
]
});
$routeProvider
//other routes here...
.when('/case-review', {
templateUrl: 'views/case-review.html',
controller: 'caseReviewController',
resolve: {
loadModule: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load('caseReview');
}]
}
})
});
在单独的case-review.js文件中,我有一个简单的控制器
app.controller('caseReviewController', function($scope, localStorageService, $route){
//do stuff
});
未找到或执行此控制器,但视图和js文件正按预期延迟加载。任何帮助都会很棒。
谢谢。
在单独的case-review.js
中,必须获得app
的引用。
angular.module('dashboard').controller('caseReviewController', function($scope, localStorageService, $route){
//do stuff
});
正如您所提到的,它在单独的文件中,它可能不知道app
变量。最好在单独的文件中获得角度模块的参考。
这一定能解决你的问题。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 角度控制器未使用OcLazyLoad和ngRoute加载
- 使用控制器作为语法和 ngRoute 分别加载控制器
- NgRoute未加载(模块错误)
- AngularJS - ngRoute - 视图加载完成后的回调
- Angular ngRoute可以't加载模板:错误[$compile:tpload]
- AngularJS ngRoute 子视图未在父视图中加载 Javascript
- Angular + Laravel:通过ngRoute加载视图
- 指令没有'ngroute后无法正确加载
- 无法加载ngRoute模块
- ngRoute无法加载$routeProvider定义的视图
- AngularJS的多个ngApps,每个都有自己的ngRoute定义,在一个页面上惰性加载和引导
- 通过Angular ngRoute加载图表不起作用
- AngularJs的ngRoute不会在ng-view上加载页面
- 重新加载一个不在ngRoute管理下的控制器
- 为什么使用ngRoute第二次加载时此画布动画挂起
- ngRoute 依赖注入错误,但加载了角度路由.js.min