我正在尝试使用不同的解析在我的UI路由器配置中创建父子关系,但它似乎不起作用。我希望有一个具有子状态的公共父状态,用于控制状态是处于编辑模式还是新模式。根据模式,国家的决心是不同的。
我所拥有的基本上是这样的:
.state('main.details', {
url: "/details",
templateUrl: "modules/details.html",
abstract: true
})
.state('main.details.new', {
controller: "DetailsCtrl as detailsCtrl",
resolve : {
detail: ['$stateParams', 'NewService', function ($stateParams, NewService) {
return NewService.getDetail($stateParams.detailId, true);
}]
}
})
.state('main.details.edit', {
controller: "DetailsCtrl as detailsCtrl",
resolve : {
detail: ['$stateParams', 'EditService', function ($stateParams, EditService) {
return EditService.getDetail($stateParams.detailId, true);
}]
}
})
这样做,我明白了:
Error: [$injector:unpr] Unknown provider: detailProvider <- detail <- DetailsCtrl
有没有办法让父状态只定义URL和templateUrl,然后让子状态具有不同的结果?
答案 0 :(得分:0)
帮助解决这个问题的一个方法就是取出路线上的重复决心并将其放入控制器可以调用的工厂中