$http リクエストは非同期操作です。SecondController を実行するとき、この時点でデータが取得されているという保証はありません。
$http を独自のサービスに封印したい場合は、$q モードと Promise モードを理解する必要があります。この時点では、同期的思考を使用して非同期操作を実行することと同じです。
私たちのプロジェクトにはそのような問題がたくさんあります。私の現在の解決策について簡単に話しましょう。上記と同様に、サービスはカプセル化され、HTTP を使用してデータが返されると、データを必要とするすべてのコントローラーがこのサービスを使用してデータの整合性を確保します。
通常、サーバーをカプセル化する場合、基本的にPromiseが使用されます。 (推奨練習)
質問者が Promise を使用したくない場合は、コールバックを使用することで問題を解決することもできます。
もう 1 つのアイデアは、イベント通知を使用することです。サーバーがデータを取得すると、イベントを使用してコントローラーに通知します。
それはコールバックを使用して解決できると言われました。試してみたところ、うまくいきました。お役に立てば幸いです。
リーリー
$http リクエストは非同期操作です。SecondController を実行するとき、この時点でデータが取得されているという保証はありません。
$http を独自のサービスに封印したい場合は、$q モードと Promise モードを理解する必要があります。この時点では、同期的思考を使用して非同期操作を実行することと同じです。
私たちのプロジェクトにはそのような問題がたくさんあります。私の現在の解決策について簡単に話しましょう。上記と同様に、サービスはカプセル化され、HTTP を使用してデータが返されると、データを必要とするすべてのコントローラーがこのサービスを使用してデータの整合性を確保します。
通常、サーバーをカプセル化する場合、基本的にPromiseが使用されます。 (推奨練習)
質問者が Promise を使用したくない場合は、コールバックを使用することで問題を解決することもできます。
もう 1 つのアイデアは、イベント通知を使用することです。サーバーがデータを取得すると、イベントを使用してコントローラーに通知します。
それはコールバックを使用して解決できると言われました。試してみたところ、うまくいきました。お役に立てば幸いです。
send()は、最初のコントローラーの入力値を動的に取得するキーアップイベントですリーリー