Angular 控制器未使用 OcLazyLoad 和 ngRoute 加载
Angular controller not loading using OcLazyLoad and ngRoute
我有一个应用程序,它最初加载了大量脚本,并且随着开发的进行,该列表正在增加。我想在需要时延迟加载包含控制器的脚本。我将 OcLazyLoad 与 ngRoute 一起用于路由选项(我确实尝试了 ui-route,它实际上具有相同的最终结果,但导致了其他应用程序问题)。延迟加载和路由工作正常,脚本和视图只在需要时加载,但问题是控制器没有被加载(参数 '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');
}]
}
})
});
在单独的案例中-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
变量。最好在单独的文件中获取 angular 模块的引用。
这一定能解决您的问题。
我有一个应用程序,它最初加载了大量脚本,并且随着开发的进行,该列表正在增加。我想在需要时延迟加载包含控制器的脚本。我将 OcLazyLoad 与 ngRoute 一起用于路由选项(我确实尝试了 ui-route,它实际上具有相同的最终结果,但导致了其他应用程序问题)。延迟加载和路由工作正常,脚本和视图只在需要时加载,但问题是控制器没有被加载(参数 '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');
}]
}
})
});
在单独的案例中-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
变量。最好在单独的文件中获取 angular 模块的引用。
这一定能解决您的问题。