問題タブ [angular-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1916 参照

javascript - AngularJS:認証のためにログインページに転送し、ルートをGETパラメータとして保持しますか?

私はAngularの初心者です。どのページでも、ユーザーがログインしているかどうかを確認し、ログインしていない場合はログイン ページに転送し、現在のパスを GET パラメータとして渡すAngular サービスを作成しようとしています。

私はほとんどそこにいますが、うまく機能していません。私が抱えている問題は次のとおりです。ユーザーがに行くと#/articles/my-articles/、に転送され#/login/?next=%2Farticles%2F:module%2Fます。

つまり、Angular が実際の URL ではなく、ルート パターンを渡しているように見えます。

これは私の認証コードです:

を使用してハッキーな方法で元のパスを取得できますが、current.params.moduleそれは役に立ちません。なぜなら、それrouteChangeStartは数回起動currentされ、最後の起動以外のすべてでオブジェクトが定義されていないようだからです。

これは私のルートファイルです:

この問題を解決するにはどうすればよいですか?

0 投票する
2 に答える
2503 参照

javascript - テンプレートを使用しない Angular の単純なルーティング

Angular でルートを処理する簡単なソリューションを探しています。

サーバーによって生成されたページは、単純な Google マップと、3 つの別個のコントローラーにある小さなロジックを備えています。

今、私はこれの中にルーティングをフックしたいと思います。シンプルなルーティングのみ。マップを移動して新しい座標を取得すると、それらを現在の URL にパラメーター "?position=10.11,50.23" としてプッシュします。ハッシュバン バックアップでヒストリ プッシュ状態を使用したい。

アプリケーションの他の部分では、このパラメーターの変更をリッスンしたいと思います ($watch でしょうか?)。そして、ページが最初にロードされたときに使用される変更を検出するために同じコードを使用したいと考えています。

以前のプロジェクトで CanJS を使用しましたが、これは非常に単純でしたが、Angular では、結果を修正するための赤ちゃんの一歩を踏み出すことはできません :)

PS: これは最小限のユースケースの一部です。

ありがとう

0 投票する
1 に答える
179 参照

angularjs - AngularJS - 関数を使用したビュー間のルーティングが機能しない

angularJS フレームワークに切り替えましたが、ルーティングに問題があります。

これは home.html ビューです

これがhome.jsのホームコントローラーです

なぜこれがうまくいかないのか誰か教えてもらえますか?また、このnavigateTo()関数が呼び出された後、ホームビューからmealListビューに変数を渡す方法を誰かが説明してくれるとよいでしょう。

0 投票する
1 に答える
2277 参照

angularjs - angularjs : ルートが変更される前に認証する方法

angularjsアプリでルートが変更される前に認証が完了するのを待つ方法。

angularfire 簡易認証を使用しています。

私のプランカーはここにあります

example@gmail.comexampleを認証情報として使用して、plunker をテストできます。

問題の原因はわかっています。しかし、解決方法がわかりません...

実際、認証されたユーザーが ' #/home/に移動すると、sahayiApp.run( function(){ ...})関数で条件がチェックされますif(next.authRequired && !$rootScope.user){ ... } . 実際には、認証されたユーザーはこのチェックに合格できますが、このコードは実際の認証が行われる前に実行されます.ルートが変更される前に認証する方法はありますか...

0 投票する
1 に答える
2488 参照

javascript - ng-route でハッシュレス URL のルーティングを避ける

をブラウジングlocalhost/index.html#/view1していて、 を指すリンクがあるとしlocalhost/index.htmlます。クリックすると、角度が ng-route モジュールを介して処理され、リダイレクト句に分類されます。

これはルート構成からの抜粋です。

ng-click を使用して、location.href を使用して JavaScript でリダイレクトすることもできますが、href リンク (SEO、ブックマーク、タブ) が失われるため、これは望ましい解決策ではありません。

tl;dr

angularJs ng-route に hash なしで URL を処理しないように指示するにはどうすればよいですか?

編集:私はhtml5モードを使用しておらず、使用する予定はありません。

0 投票する
3 に答える
10174 参照

angularjs - ユーザーが認証されていない場合はルートにリダイレクト

ログインしていない場合にユーザーをログインルートにリダイレクトする方法をきれいに実装しようとしています。私は、すぐには機能しない別の SO 回答hereに基づいてソリューションを構築しています。これが私の解決策です。

$routeChangeError私の質問は、ルートをリダイレクトできるように、イベントをどこで聞くことができるかということです。ディレクティブで実行しようとしましたが、イベントを発生させることができませんでした。promise が拒否されると読み込まれないため、コントローラに配置できません。何かご意見は?

0 投票する
1 に答える
2467 参照

angularjs - $routeProvider が html5Mode で動作しない

angularJs の学習を始めたばかりで、角度ルート サービスを使用して部分ページを構成しようとしていました。

ハッシュ形式で動作しましたが、ハッシュを削除しようとすると、routeProvider が動作しなくなりました。

JS

HTML

誰かが私を啓発できますか?

0 投票する
0 に答える
273 参照

javascript - AngularJS v1.2.6 ルーティングが機能しない

私の質問に似ている多くの異なる質問を見てきましたが、私の質問は異なります。以下のルートを設定しています。

およびコントローラーは次のとおりです。

コンソールで次のようになりました。

HomeCtrl がロードされるように見えますが、問題はviews/home.html画面に表示されないことです。ビューは決して変更されませんが、コントローラーは変更します。上記のコードで何が間違っている可能性がありますか?

詳細なコンテキスト: 私は Cordova + AngularJS アプリに取り組んでいます。上記のコードは、Android 4.2.3 ストック クロム Web ビューでテストされています。

編集 1: 現在テスト済みですがChrome v31.0.1650、デスクトップでも動作しません。これは に付属する既知のバグなのだろうかAngularJS v1.2.6

編集 2: AngularJS を v1.2.4 以前にダウングレードすると、問題が解決します。どうやら、AngularJS と何か関係があり、上記のコードは問題ないようですか?

0 投票する
0 に答える
591 参照

angularjs - ルーティング時に HTML タグの ng-class を更新する

AngularJS を使用して Chrome 拡張機能を作成しています。UI はブラウザー アクション ポップアップを介して提供され、コンテンツが変更されると、ポップアップのサイズを変更する必要が生じることがあります。私がこれを行うことができた唯一の方法は、クラスの条件付き更新を介して HTML および BODY タグの CSS サイズ属性を変更することです。

「doExpand」を設定するコントロールを ng-click すると、うまく機能します。ただし、ルーティングを使用して複数のビューを表示するようにアプリを更新しています。そうすることで、インラインコントローラー宣言を削除しています...

...そしてルーティング設定でそれを定義します:

ルーティングは機能していますが、問題は、HTML タグがビュー自体にあるため、コントローラーの範囲外になっていることです。ビューに BODY タグを貼り付けることはできますが、HTML タグについては同じことを行うことはできません。なぜなら、JS のインクルードは head などにある必要があるためです (およびその他の理由)。

このシナリオを処理する方法について誰かアドバイスをもらえますか? ありがとうございました!