ページ全体の再読み込みを行うリダイレクトを実行して、ページが読み込まれたときにWebサーバーからのCookieが更新されるようにしたい。window.location = "/#/Next"
そして、window.location.href = "/#/Next"
動作しない、彼らはサーバーに当たらない角度のルートを行います。
Angularコントローラー内で完全なサーバーリクエストを行う正しい方法は何ですか?
ページ全体の再読み込みを行うリダイレクトを実行して、ページが読み込まれたときにWebサーバーからのCookieが更新されるようにしたい。window.location = "/#/Next"
そして、window.location.href = "/#/Next"
動作しない、彼らはサーバーに当たらない角度のルートを行います。
Angularコントローラー内で完全なサーバーリクエストを行う正しい方法は何ですか?
回答:
用<a>
のタグ:
あなたtarget="_self"
はあなたの<a>
タグに固執する必要があります
AngularJSがページ全体の再読み込みを実行する3つのケースがあります。
<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
<a href="http://angularjs.org/">link</a>
<a href="https://stackoverflow.com/not-my-base/link">link</a>
JavaScriptの使用:
この$location
サービスでは、URLのみを変更できます。ページをリロードすることはできません。URLを変更してページを再読み込みするか、別のページに移動する必要がある場合は、下位レベルのAPIを使用してください$window.location.href
。
見る:
<a href="..." target="_self">
私のために働いたものです ありがとう!
JSコードから(つまりHTMLアンカーからではなく)動作する同じ問題がありました。これが私たちがそれを解決した方法です:
必要に応じて、サービスを通じて現在のURLを仮想的に変更し$location
ます。これは、宛先が現在のURLの単なるバリエーションである場合に役立ち、$location
ヘルパーメソッドを利用できます。たとえば$location.search(..., ...)
、クエリ文字列パラメーターの値を変更するために実行しました。
$location.url()
必要に応じて現在のURLを使用して、新しいリンク先URLを作成します。機能するために、この新しいものはスキーマ、ドメイン、ポートの後にすべてを含める必要がありました。したがって、たとえば次の場所に移動したい場合は、
http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en
次に、次のようにURLを設定する必要があります。
var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';
(先頭'/'
にも)。
低レベルで新しいリンク先URLを割り当てます。$window.location.href = destinationUrl;
強制的にリロードします。低レベルのままです。 $window.location.reload();
ヒットとトライアルセッションを検索して与えた後、私は最初にURLを次のように指定することでそれを愛することができます
$window.location.href = '/#/home/stats';
次にリロード
$window.location.reload();
同じ問題がありました。私が使用している場合window.location
、$window.location
あるいは<a href="..." target="_self">
ルートは、ページを更新しません。したがって、キャッシュされたサービスが使用されますが、これは私のアプリでは必要ありません。ルーティング後にページを強制的に再読み込みするようにwindow.location.reload()
after window.location
を追加することで解決しました。ただし、このメソッドはページを2回ロードするようです。汚いトリックかもしれませんが、それは仕事をします。これが私が今持っている方法です:
$scope.openPage = function (pageName) {
window.location = '#/html/pages/' + pageName;
window.location.reload();
};