jim*_*jim 6 javascript angularjs angular-ui-router
我在UI-Router .state()调用中使用resolve.在我的控制器中,我可以访问值没有问题,但它抛出一个错误如下:
$注射器/ unpr?P0 = ctrlOptionsProvider%20%3C-trlOptions
以下代码抛出错误但允许我访问变量ctrlOptions就好了:
.state('new_user', {
url: "/user/new",
templateUrl: "views/user/new.html",
data: {pageTitle: 'New User'},
controller: "UserController",
resolve: {
ctrlOptions: ['$stateParams', function($stateParams) {
return {
view: 'new_user',
}
}],
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'MetronicApp',
insertBefore: '#ng_load_plugins_before', // load the above css files before '#ng_load_plugins_before'
files: [
'../../../assets/global/plugins/bootstrap-datepicker/css/datepicker3.css',
'../../../assets/global/plugins/select2/select2.css',
'../../../assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js',
'../../../assets/global/plugins/select2/select2.min.js',
]
});
}]
}
})
Run Code Online (Sandbox Code Playgroud)
MetronicApp.controller('UserController', ['$rootScope', '$scope', '$http', '$stateParams', 'ctrlOptions', function($rootScope, $scope, $http, $stateParams, ctrlOptions, $timeout) {}
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?
谢谢
PSL*_*PSL 30
ng-controller="UserController"从您的视图中删除,让路由器实例化控制器.
当您在绑定到路由的控制器中使用路由解析参数作为依赖项注入时,您不能将该控制器与ng-controller /或任何其他指令一起使用,因为具有该名称的服务提供者ctrlOptions不存在.它是一个动态依赖项,由路由器在实例化控制器以在其各自的局部视图中绑定时注入.当路由器可以实例化并将控制器绑定到该模板时,不使用ng-controller实例化控制器并使用ng-controller指令启动模板也是一种更好的做法,模板将更加可重用,因为它与控制器没有紧密耦合name(使用ng-controller ="ctrlName")但仅限于合同.
| 归档时间: |
|
| 查看次数: |
6463 次 |
| 最近记录: |