Javascript 在父控制器中注入子状态解析
我有一个州会议:Javascript 在父控制器中注入子状态解析,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有一个州会议: function routeConfig($stateProvider, $urlRouterProvider) { $stateProvider .state('projects', { url: '/projects', template : '<ui-view autoscroll="true" autoscroll-body-top></ui-view>',
function routeConfig($stateProvider, $urlRouterProvider) {
$stateProvider
.state('projects', {
url: '/projects',
template : '<ui-view autoscroll="true" autoscroll-body-top></ui-view>',
abstract: true,
title: 'Les projets',
controller : 'ProjectController',
}) .state('projects.add', {
url: '/add',
templateUrl: 'http://localhost:8080/gestionprojet/projects',
title: 'Ajouter un projet',
})
.state('projects.detail', {
url: '/detail',
params : { projectId : null},
templateUrl: 'http://localhost:8080/gestionprojet/detailProject',
resolve : {
project: function (projectFactory, $stateParams) {
return projectFactory.getProject($stateParams.projectId);
},
projectTasks : function (projectFactory, $stateParams) {
return projectFactory.getProjectTasks($stateParams.projectId);
}
},
title: 'Detail du projet',
});
}
如果转到项目,则会出现此错误。添加:
未知提供程序:无法将嵌套的解析变量注入父控制器中。请参见能否显示整个应用程序配置?需要确保它在同一个模块上。另外,您的控制器是否位于不同的文件中?如果是,,请确保它正在加载到浏览器中。我现在无法向您显示我的整个配置,但我确信它已加载到同一个模块中,并且正在加载到浏览器中。问题是在加载项目时。添加状态第二个子状态中的解析变量丢失,这就是我出现此错误的原因,我不知道如何解决这个问题如果你去project.detail,它有效吗?是的。我是否需要为子状态指定一个与父状态不同的控制器?不,您不应该这样做。我相信父控制器对这两个孩子都有作用。如果您希望子状态具有更具体的作用域,那么您可以这样做。
angular.module('BlurAdmin.pages.projects')
.controller('ProjectController', ProjectController);
function ProjectController($state, $stateParams, $log, $scope, projectFactory, taskFactory, project, projectTasks) { ... }