現在の状態をリロードするにはどうすればいいですか? 質問する

現在の状態をリロードするにはどうすればいいですか? 質問する

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

おすすめ記事