angular.js - angularjs の順序の問題?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 17:00:54
0
4
614

1. app.run()でajax経由でユーザー情報を取得するのですが、取得したユーザー情報をコントローラーで使用する必要があるのですが、コントローラーで実行するとアプリ内でユーザー情報が取得されてしまうことがあります。 .run()。ajax 情報がまだ返されていないため、エラーが発生しました。多くの ajax に遭遇すると順序がめちゃくちゃになっているように感じますが、何か良い解決策はありますか?

曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(4)
迷茫

なぜリクエストデータを run に置く必要があるのですか? js は非同期の問題に注意する必要があります。

  • コントローラーで ajax を介してデータをリクエストできます ($http を使用することをお勧めします)。データが返される前に、ページにローディング サークルを配置します。データが返された後、ページが更新され、ローディングされます。隠蔽されます。

  • ルートのresolve属性を使用することもできます。これは、ページをロードする前にデータが取得されるまで待機するためのものです。具体的な使用方法については、ルーティングのチュートリアルを参照してください。

どちらの方法も非常に使いやすいですが、個人的には最初の方法が好きです。

いいねを押す +0
过去多啦不再A梦

ルーターの解決

いいねを押す +0
刘奇
  1. コントローラーでの実行中に ajax によって要求された Promise を取得し、そのコールバックにコードを記述することができます。

  2. コントローラーで必要なユーザー情報を監視し、値がある場合にロジックを実行することもできます。

いいねを押す +0
Peter_Zhu

Ajax の実行が完了した後に変数 ok を定義して、成功したかどうかを識別できます
コントローラー内で
function waitOK() {

リーリー

}

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート