Angulaire de l'INTERFACE utilisateur du routeur d'accès de l'état params parent
J'ai Angulaire de l'App à l'aide de la grande ui-router.
Ma configuration ressemble:
.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: {
'concern-instance@': {
/* some different resolved variables */
},
}
})
Tout cela fonctionne comme dans du beurre. Toutefois, dans mon task_list
modèle lors de l'état project.task
, je veux être en mesure d'accéder à la taskId
param donc je peut mettre en évidence active nav liens, même lorsque l'url est #/project/123/task/456/
la taskId
est vide. Je comprends que c'est parce que les modèles n'ont accès qu'à params déclarées à cet état. Donc, si je veux obtenir le taskId
dans le project.task
état, comment dois je faire? Ai-je besoin de re-déclarer le task-list
dans project.task
?
- C'est un problème ennuyeux. Vous pouvez supprimer l'url de la mère-patrie, et de déclarer des url complètes pour l'enfant, les états, si vous n'avez pas besoin de l'état param dans le contrôleur de parent/modèle. Si vous le faites, alors je suppose que vous pourriez mettre juste l'état param dans le champ d'application dans une variable pour être accessible par les enfants.
- Nous sommes en cours d'exécution dans la même situation que vous décrivez. Vous le savez probablement déjà, mais vous pouvez en fait à l'ensemble de vos paramètres via
$state.params
. Mais, si vous êtes comme moi, elle ne va pas bien avec vous pour obtenir vos paramètres dans les différentes façons tout au long de vos contrôleurs. La chose la plus proche que j'ai trouvé jusqu'à présent dans le documentation décrit l'opposé question d'un parent de l'état param pas disponible à l'état d'enfant. Avez-vous jamais comprendre cela (via$stateParams
)? - Avez-vous jamais pensé que cela? J'ai aussi eu le même problème.
Vous devez vous connecter pour publier un commentaire.
Dans l'INTERFACE utilisateur-la documentation du Routeur ici ils expliquent que
Vous ne pouvez avoir accès à un parent paramètres de l'état dans un état d'enfant à l'aide de la détermination de la propriété sur le parent.
Mettez-le sur votre "projet" de l'état (parent):
Puis à l'intérieur de votre contrôleur pour votre état projet.la tâche (enfant), vous devriez avoir accès à la fois à
et
J'ai remarqué
$state.params
contient l'état d'enfant params. N'arrive pas à trouver toute la documentation sur elle. Il fonctionne, tout simplementComment êtes-vous essayer d'accéder à l'id de la tâche? Il devrait en être ainsi, pris de officiel la documentation: