gpt4 book ai didi

javascript - 使用 ocLazyLoad 延迟加载带有 $stateProvider 的 Controller

转载 作者:数据小太阳 更新时间:2023-10-29 04:11:33 25 4
gpt4 key购买 nike

我在将 oclazyload 与 $stateProvider 一起使用时遇到问题。

我已经指定 Controller .js 应该加载到路由器配置中,它确实加载了,'但是它不能用作 templateURL 中加载的文件中的 ng-controller 属性。

ui-路由配置:

core
.run(
[ '$rootScope', '$state', '$stateParams',
function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}
]
)
.config(
[ '$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
console.info('Routing ...');
$urlRouterProvider
.otherwise('/app/dashboard');

$stateProvider
.state('app', {
abstract: true,
url: '/app',
templateUrl: 'templates/app.html',
})
.state('app.orders', {
abstract: true,
url: '/orders',
templateUrl: 'templates/orders/orders.html',
})
.state('app.orders.index', {
url: '/index',
templateUrl: 'templates/orders/index.html',
resolve: {
deps: ['$ocLazyLoad',
function( $ocLazyLoad ){
console.info('Path ot order controller in route config',Momento.paths.js + 'controllers/orders/index.js');
return $ocLazyLoad.load([
Momento.paths.js + 'controllers/orders/index.js'
])
}
]
}
})
}
]
)
;

我的 templateURL 文件开始于:

<div class="" id="" ng-controller="OrdersIndexController">...</div>

但是当它加载时,控制台抛出错误:

<info>orders/index controller loaded controllers/orders/index.js:3
<info>Now I've finished loading the controller/order/index.js config/ui-router.js:69
<info>orders template loaded VM30437:1 (<-- this is the app.orders abstract template with ui-view directive ready for app.orders.index view)
<error>Error: [ng:areq] Argument 'OrdersIndexController' is not a function, got undefined
... <trace>

所以文件由 lazyload 正确加载,由上面的控制台输出和开发人员工具中的网络选项卡确认,但它在 templateURL 中不可用以用作 Controller ?是否需要使用 Controller 在路由器配置中使用别名:''键或在模板中?它是否需要专门附加到此应用程序中的(唯一)模块?

我错过了什么?

PS:确认 Controller 的名称实际上是 OrdersIndexController:

core 
.controller('OrdersIndexController', [
'Model', '$scope', '$window',
function( Model, $scope, $window){
console.info("OrdersIndexController fired");
}
]);

最佳答案

你必须注册你的 Controller

angular.module("myApp").controller

工作

angular.module("myApp").controller('HomePageController', ['$scope', function ($scope) {
console.log("HomePageController loaded");

}]);

不工作

var myApp = angular.module("myApp") 

myApp.controller('HomePageController', ['$scope', function ($scope) {
console.log("HomePageController loaded");

}]);

关于javascript - 使用 ocLazyLoad 延迟加载带有 $stateProvider 的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com