Je tente de refactoriser un site Web en Angular via UI-Router. Sur le composant parent, j'ai défini certaines données sur le contrôleur. Comment puis-je transmettre ces données au composant routé imbriqué de l'enfant via UI-Router? La résolution de l'UI-Router ne fonctionne que lorsque vous avez une liaison sur les données, mais je ne sais pas s'il est possible de lier les données du contrôleur parent au composant parent.Routeur d'interface utilisateur, transfert de données depuis le contrôleur parent
const main = angular.module('main', ['ui.router']);
main.config(function($stateProvider) {
const states = [
{ name: 'parent', url: '/parent', component: 'parent' },
{ name: 'parent.child', url: '/{childUrl}', component: 'child',
resolve: {
data: function($transition$) {
// I want to pass in { name: 'Name1', content: 'Page-Long Content1' }, { name: 'Name2', content: Page-Long Content2' }
// How do I do this?
}
}
}
];
states.forEach(function(state) {
$stateProvider.state(state);
});
});
angular.module('main')
.component('parent', {
template:
'<div ng-repeat="data in $ctrl.data">' +
'<p>{{data.name}}</p>' +
'<a ui-sref="parent.child({ childUrl: data.name })" ui-sref-active="active">Child link</a>' +
'</div>' +
'<ui-view></ui-view>',
controller: function() {
this.data = [
{name: 'Name1', content: 'Page-Long Content1'},
{name: 'Name2', content: 'Page-Long Content2'}
]
}
});
angular.module('main')
.component('child', {
bindings: { data: '<' },
templateUrl: 'link.html',
});
Stocker des données et les récupérer après -> services (usine), stockage local ou (non recommandé) rootScope. Transmettre les données d'un contrôleur à un autre -> déclenchement d'événement et écoute – Alburkerk