带有嵌套视图的Angularjs ui路由器正在为孙子加载父控制器
我使用$state.go(“titulos”,params)加载titulos页面,在这种情况下,不会再次加载父控制器(emissao)。但是当我调用孙子$state.go(“titolos.fluxos”,params)时,父控制器(titolos)将再次加载。我不希望发生这种情况,因为父控制器已经加载,这是一种不需要的行为。我不知道为什么第一个孩子在不加载父母的情况下工作得很好,但是对于孙子(titulos.fluxos)来说,不必要地加载他的父母(titulos)。 我怎样才能解决这个问题?求你了带有嵌套视图的Angularjs ui路由器正在为孙子加载父控制器,angularjs,nested,angular-ui-router,views,state.go,Angularjs,Nested,Angular Ui Router,Views,State.go,我使用$state.go(“titulos”,params)加载titulos页面,在这种情况下,不会再次加载父控制器(emissao)。但是当我调用孙子$state.go(“titolos.fluxos”,params)时,父控制器(titolos)将再次加载。我不希望发生这种情况,因为父控制器已经加载,这是一种不需要的行为。我不知道为什么第一个孩子在不加载父母的情况下工作得很好,但是对于孙子(titulos.fluxos)来说,不必要地加载他的父母(titulos)。 我怎样才能解决这个问题
$stateProvider.state('emissao', {
url: '/emissao',
views: {
'main': {
controller: 'emissaoCtrl',
templateUrl: 'view/emissao.html'
}
},
resolve: {
emissoes: function (cadastroAPI) {
return cadastroAPI.listar('emissao');
}
}
});
$stateProvider.state('titulos', {
parent: 'emissao',
url: '/titulos',
controller: 'titulosCtrl',
templateUrl: 'view/titulo.html',
resolve: {
titulos: function (cadastroAPI, $stateParams) {
return cadastroAPI.listarTitulos($stateParams.parent.obj);
}
},
params: {
parent: null,
container: null
}
});
$stateProvider.state('titulos.fluxos', {
url: '/fluxos',
controller: 'fluxosCtrl',
templateUrl: 'view/fluxo.html',
resolve: {
fluxos: function (fluxoAPI, $stateParams) {
return fluxoAPI.listar($stateParams.parent.obj.Id);
}
},
params: {
parent: null,
container: null
}
});
我发现了问题!实际上,正常行为不会加载父控制器,我的问题是“params”参数在父控制器“titulos”和子控制器“fluxos”中都具有相同的名称“parent”,这导致对父控制器进行了不必要的调用。我不知道如何将此答案视为已接受:-(