Angular UI Router を使用しており、現在の状態を再読み込みしてすべてのデータを更新し、現在の状態とその親のコントローラーを再実行したいと考えています。
3つの状態レベルがあります: directory.organisations.details
directory.organisationsには、組織のリストを含むテーブルが含まれています。テーブル内の項目をクリックすると、項目の ID を渡す $StateParams を含むdirectory.organisations.detailsが読み込まれます。そのため、詳細状態でこの項目の詳細を読み込み、編集してからデータを保存します。ここまではすべて順調です。
ここで、この状態を再読み込みし、すべてのデータを更新する必要があります。
私が試してみました:
$state.transitionTo('directory.organisations');
親の状態に移動しますが、パスが変更されていないため、コントローラーはリロードされません。理想的には、directory.organisations.details の状態のままで、親のすべてのデータも更新したいです。
私も試しました:
$state.reload()
私は、$state.reload の API WIKI でこれを見ました (現在コントローラーの再インスタンス化に関するバグ、すぐに修正されます)。
何か助けて頂けませんか?
ベストアンサー1
これは、ui-router で更新する最も短い実用的な方法であることがわかりました。
$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams
新しいバージョンへの更新:
$state.reload();
これは次の別名です:
$state.transitionTo($state.current, $stateParams, {
reload: true, inherit: false, notify: true
});
ドキュメンテーション:https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_reload