[解決済み] AngularJSで$windowまたは$locationを使用してリダイレクトする
2023-03-10 12:16:25
質問
私が取り組んでいるアプリは、様々な状態(ui-routerを使用)を含んでおり、ある状態はログインする必要があり、他の状態は一般に公開されています。
私は、ユーザーがログインしているかどうかを有効にチェックするメソッドを作成しましたが、現在問題があるのは、必要なときに実際にログイン ページにリダイレクトすることです。ログインページは現在、AngularJSアプリ内に配置されていないことに留意してください。
app.run(function ($rootScope, $location, $window) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
if (toState.data.loginReq && !$rootScope.me.loggedIn) {
var landingUrl = $window.location.host + "/login";
console.log(landingUrl);
$window.open(landingUrl, "_self");
}
});
});
console.logにはちゃんと目的のurlが表示されています。その次の行は、$window.open から window.location.href まで実質的にすべてを試しましたが、何を試してもリダイレクトが起こりません。
を編集します(解決済み)。
問題を発見しました。
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
変数landingUrlは'domain.com/login'に設定されており、これではうまくいきません。 これは、私が試したものの1つでした)。しかし、コードを次のように変更した後
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
が動作するようになりました。
どのように解決するのですか?
私が考えるに、この方法は
$location.url('/RouteTo/Login');
わかりやすくするための編集
私のログインビューのルートが
/Login
であったとすると、私は
$location.url('/Login')
でそのルートに移動します。
Angularアプリの外側にある場所(つまりルートが定義されていない)には、古いJavaScriptが役に立ちます。
window.location = "http://www.my-domain.com/login"
関連
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] HTMLページからのリダイレクト
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] AngularJSやJavascriptでダウンロード用のファイルを提供する方法とは?