問題タブ [angularjs-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.
javascript - ちらつきを防ぐためにモデルがロードされるまでAngularJSルートの変更を遅らせる
各モデルとそのデータがそれぞれのサービスを使用してフェッチされるまで、 AngularJS が新しいルートの表示を遅らせる方法 (Gmail と同様) があるかどうか疑問に思っています。
たとえば、ProjectsController
すべてのプロジェクトを一覧表示しproject_index.html
、これらのプロジェクトを表示するテンプレートがあった場合Project.query()
、新しいページを表示する前に が完全に取得されます。
それまでは、古いページが引き続き表示されます (たとえば、別のページを閲覧していて、このプロジェクトのインデックスを表示することにした場合)。
angularjs - AngularJS の $routeChangeSuccess の反対
誰かが URL のルートを変更しているかどうかを知る方法があるかどうか疑問に思っていました。
例として、html に次のようなものがあります。
そして私はこれを使用していました:
ただし、URL を変更する前にこのコードを実行する必要があることに気付きました。これを行う方法はありますか?また、同じ方法を使用して、next
どこcurrent
にリダイレクトされ、どこからリダイレクトされるのかを知る方法はありますか?
angularjs - どのように/いつng-clickを使用してルートを呼び出すのですか?
ルートを使用しているとします。
また、HTML では、ボタンがクリックされたときに about ページに移動したいと考えています。1つの方法は
...しかし、ここでも ng-click が役立つようです。
- その仮定は正しいですか?アンカーの代わりに ng-click を使用できますか?
- もしそうなら、それはどのように機能しますか?いいえ:
<div ng-click="/about">
angularjs - AngularJS:ユーザーが認証されるまでテンプレートコンテンツを非表示にする方法は?
私のアプリには2つのページがあります:main.html
とlogin.html
。認証されていないユーザーがアクセスする/main
場合は、にリダイレクトする必要があります/login
。
問題は、main.html
最初にレンダリングされ、1秒ほど後に、ユーザー認証が失敗したときにlogin.html
レンダリングされることです。
main.html
認証が成功するまでレンダリングされないようにするにはどうすればよいですか?
関連するコード(CoffeeScript)は次のとおりです。
angularjs - angularjs ルートからサーバーにクエリ パラメータを送信する
クライアント側のフレームワークに AngularJS を使用しています。routeprovider を使用して、処理のためにクエリ パラメータを templateURL に送信したいと考えています。基本的に、私の templateURL は、HTML を生成するサーバー側の php スクリプトです。
現在、routeprovider はサーバー側のコードにクエリ パラメータを送信していません。そのようなすべてのパラメーターに対して空白の値を取得しています。
私のアプローチが間違っている場合は、修正してください。
javascript - ルートに応じて ng-include の可視性を切り替えます
私は次の構成を持っています:
そして私のルート index.html のどこかに次のものがあります:
ここで、両方のビューを同時に DOM にロードして生成し、ルート/URL に応じていずれかを表示します。
次のようなものです(実際の作業コードではなく、アイデアを提供するためだけです)。
app.js:
ルート index.html:
更新: ng-view の種類がこれを行うことは知っていますが、微妙な場合でも違いが存在します。各ビューの html が一度生成され、常に DOM にとどまるようにします。
angularjs - angularルートでクエリ文字列を渡す方法は?
私は AngularJS ルートを使用しており、クエリ文字列 (たとえば、 url.com?key=value
) を使用する方法を確認しようとしています。Angular は、同じ名前のキーと値のペアを含むルートを認識しませんalbums
:
angularjs - angularjs が以前のルート パスを取得する
私のモジュール設定で
コントローラー
コントローラーでわかるように、戻るボタンの URL とテキストをハードコーディングしました (実際には、画像を使用するのでテキストは必要ありません)。このようにして、場合によっては戻るボタンのナビゲートが正しくないことがわかりました。history.back()
戻るボタンがホーム ビューのメニュー リンクに変わるため、使用できません。
私の質問は、コントローラーで以前のルートパスを取得するにはどうすればよいですか、それともこれを達成するためのより良い方法ですか?
私の問題のPlunkerデモンストレーションを作成しました。それを確認してください。
redirect - ユーザーがログインした後にリダイレクトする
私はAngularを初めて使用します。現在、すべてのルートを設定して、希望どおりに機能させようとしています。
セットアップ:
ユーザーが特定のページ(/settings
この例の場合)に移動すると、アプリはユーザーが既にログインしているかどうかを確認する必要があります。ログインしている場合は、通常どおり続行します。それ以外の場合、ユーザーはログインページ(/login
)に移動する必要があります。
欲しいもの:
ユーザーが正常にログインした後、最初にアクセスしようとしていたページに移動する必要があります(/settings
)
私の質問: ユーザーがどこに行こうとしていたかを覚える「角度のある方法」はありますか?
関連コード:
app.js
login.js
これまで私を導いてくれたビデオを提供してくれたJohnLindquistに感謝します。
javascript - $location が最初の ng-click コールバックでナビゲートしない
AngularJS アプリケーションで奇妙なことが起こっています。オブジェクトの配列にバインドされたアンカータグのリストを持つビューがあります(ng-repeat
リストをレンダリングするために使用しています)。各アンカー タグにはng-click
、コントローラーのメソッドへのバインドがあります。方法は次のとおりです。
varはurl
毎回正しい値に初期化されています。しかし、アンカータグを初めて$location.path(url)
クリックすると何もせず、もう一度クリックするとターゲットの URL に移動します。
アップデート:
わかりました$http
、次のようにサービスを使用して動作させました:
またはを使用した場合、本当に違いがあります$,ajax
か$http
? 2つは同じ意味で使えると思ったのですが…?