コンテキスト、角度、ui-router、何も特別なものはありません.3つの名前付きui-viewで構築されたルートビュー。 のでindex.html
に、我々は
<body>
<div ui-view='left'>
<div ui-view='center'>
<div ui-view='right'>
</body>
を持って、私のルートは
$stateProvider
.state('main', {
url: '/',
views: {
'left': {templateUrl: 'foo.html'},
'center': {templateUrl: 'bar.html'},
'right': {templateUrl: 'xyz.html'}
}
})
.state('main.b', {
url: '/b',
params: { foo: {value: 'bar'} }
views: { '[email protected]': {templateUrl: '123.html'} } // I wish to update $stateParams in '[email protected]' view
})
.state('main.c', {
url: '/c',
params: ...
views: { '[email protected]': ..., '[email protected]': ..., '[email protected]': .. }
});
のように見える「中央」と「左」ビューで$ stateParamsを更新するために、状態をbに行くにおける方法はあります?私はそれをサービスを使用して得ることができますが、私は必要な変数に$watch
を追加する必要があり、それは私に少しハッキーに見えます。
私は実際に私が欲しいものを得ることができますが、ビューがリロードされ、私は左のビューでキャンバスを持っているので、この動作を避けたいと思います。
これは何とかまだのinit $にビュー内のすべてのコンポーネントを引き起こし、その後すぐに$いくつかの深刻なパフォーマンスにつながる可能性がある、破壊問題。あなたのコンポーネント内で 'this。$ onInit()'と 'this。$ onDestroy()'に 'console.log()'を追加するかどうか確認できます。 –