Possiedo un'app angolare che utilizza l'ottimo ui-router.Router angolare UI - Parametri dello stato di accesso nel genitore
La mia configurazione assomiglia:
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
// PROJECT DETAIL
.state('project', {
url: '/project/:projectId/',
resolve: {
/* some base api calls */
},
views: {
'task-list': {
templateUrl: 'partials/task_list.tmpl.html',
controller: 'TaskListCtrl',
resolve: {
tasks: function ($stateParams, ConcernService) {
return ConcernService.get('project-tasks/', $stateParams.projectId);
},
}
},
'concern-instance': {
/* some resolved variables */
}
}
})
.state('project.task', {
url: 'task/:taskId/',
views: {
'[email protected]': {
/* some different resolved variables */
},
}
})
Tutto questo funziona come il burro. Tuttavia nel modello task_list
nello stato project.task
, desidero poter accedere al parametro taskId
in modo da poter evidenziare i collegamenti di navigazione attivi, anche quando l'URL è #/project/123/task/456/
il taskId
è vuoto. Capisco che questo è dovuto al fatto che i modelli hanno accesso solo ai parametri dichiarati per quello stato. Quindi, se voglio ottenere lo taskId
nello stato project.task
, come dovrei farlo? Devo ri-dichiarare lo task-list
in porject.task
?
Qualsiasi aiuto molto apprezzato.
È un problema fastidioso. È possibile rimuovere l'URL per lo stato padre e dichiarare URL completi per gli stati figlio, se non è necessario il parametro di stato nel controller/modello padre. Se lo fai, allora suppongo che potresti inserire lo stato param nello scope in una variabile a cui i bambini possano accedere. – aet
Stiamo incontrando lo stesso problema che descrivi. Probabilmente lo saprai già, ma in effetti puoi accedere a tutti i tuoi parametri tramite '$ state.params'. Ma, se sei come me, non starà bene con te per ottenere i tuoi parametri in modi diversi attraverso i tuoi controller. La cosa più vicina che ho trovato finora nella [documentazione] (https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service/) descrive il problema opposto di uno stato genitore param non disponibile per lo stato figlio. Lo hai mai capito (tramite '$ stateParams')? – Manny
Lo hai mai capito? Sto anche avendo lo stesso problema. – pankaj