わかりました、angular と ui-router についてかなりの経験がありますが、アプリのアーキテクチャに関して問題が発生しています。次のような状態があります。
main.module.js
.state('main', {
abstract: true,
controller: 'MainCtrl',
template: '<div ui-view />'
}).state('main.clients', {
url: '/clients/:id',
views: {
list: {controller: 'ClientListCtrl', templateUrl: 'client-list.html'},
detail: {controller: 'ClientDetailCtrl', templateUrl: 'client-detail.html'}
}
}.state('main.services', {
url: '/services/:id',
views: {
list: {...},
detail: {...}
}
}
main.html
<div>
<div ui-view='list'></div>
<div ui-view='detail'></div>
</div>
client-list.html
<ul>
<li data-ng-click='$state.go('main.clients({id: client.id})'
data-ng-repeat='client in clients'>
{{client.name}}
</li>
</ul>
これはすべて正常に機能しているようで、期待どおりにビューが作成されます。私の主な質問は、私がmain.clients
状態にあり、ユーザーがクライアント名をクリックすると、発火し、状態が実際には変更されていなくても、 and$state.go(...)
が再初期化されます(まあ、 URL の部分は変更されました)。 . ClientListCtrl
ClientDetailCtrl
:id
複数のビューを誤用していませんか? アーキテクチャの変更は賢明でしょうか? これを最も効率的な方法で構築する方法に頭を悩ませようとしているだけで、この場合、コントローラーの再初期化は必要ないように見えますが、おそらく何かが欠けています。ありがとう!