AngularJSを使用してページ全体を再読み込みまたは再レンダリングする方法 質問する

AngularJSを使用してページ全体を再読み込みまたは再レンダリングする方法 質問する

複数のユーザー コンテキストに基づいてページ全体をレンダリングし、複数のリクエストを行った後$http、ユーザーがコンテキストを切り替えてすべてを再レンダリングできるようにする必要があります (すべての$httpリクエストを再送信するなど)。ユーザーを別の場所にリダイレクトするだけで、正常に動作します。

$scope.on_impersonate_success = function(response) {
  //$window.location.reload(); // This cancels any current request
  $location.path('/'); // This works as expected, if path != current_path
};

$scope.impersonate = function(username) {
  return auth.impersonate(username)
    .then($scope.on_impersonate_success, $scope.on_auth_failed);
};

を使用すると、応答を待機しているリクエストの$window.location.reload()一部がキャンセルされるため、それを使用できません。また、ハックも機能しません (何も起こりません)。$httpauth.impersonate(username)$location.path($location.path())

すべてのリクエストを手動で再度発行せずにページを再レンダリングする別の方法はありますか?

ベストアンサー1

ちなみに、Angular で現在のページを強制的に再レン​​ダリングするには、以下を使用できます。

$route.reload();

AngularJSによるとドキュメンテーション:

$location が変更されていない場合でも、$route サービスによって現在のルートが再読み込みされます。

その結果、ngView は新しいスコープを作成し、コントローラーを再インスタンス化します。

おすすめ記事