UI-Routerを通じてAngularにWebサイトをリファクタリングしようとしています。親コンポーネントでは、コントローラ上にいくつかのデータを定義しました。このデータをUI-Router経由で子ネストされたルーティングコンポーネントに渡すにはどうすればよいですか? UI-Routerの解決は、データにバインディングがある場合にのみ機能しますが、親コントローラのデータを親コンポーネントにバインドすることが可能かどうかはわかりません。UIルータ、親コントローラからデータを渡す
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',
});
- >サービス(工場)、ローカルストレージまたは(推奨されない)rootScopeの後にデータを格納して取得します。 コントローラから別のコントローラにデータを渡す - >イベントトリガとリスニング – Alburkerk