angular.js - サービス内の $http リクエストは正常ですが、コントローラーでデータを取得できません
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 16:57:48
0
2
616

カスタム サービスで $http を使用して、ローカルの json ファイルのデータを取得します。リクエストは成功する可能性がありますが、コントローラーでデータを取得できません。
ポイントをブレークすると、データが空であることがわかります。ページは更新されますが、データは存在します。理由は何ですか?

カスタマイズされたサービスコード:

リーリー

コントローラー内のコード:

リーリー

必要な Json データ:

リーリー

ブレークポイントは console.log です

ページが更新されると、

になります。

コントローラーからデータを取得できないのはなぜですか?非同期のせいでしょうか?

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

全員に返信(2)
给我你的怀抱

非同期呼び出しの問題
service.getData()を実行した後
service.returnedDataの値がまだ空です~~~

また、service.getData() がサービス内で呼び出されるのはなぜですか?
他のモジュールがデータを必要としないときにデータをロードすることに何の意味があるのでしょうか?

いいねを押す +0
曾经蜡笔没有小新

1. サービスコードに記述したサービス名は requestData ですが、コントローラーに記述した名前は blogData です。これが理由かどうかはわかりません。
2. カスタム サービスで $http を使用する場合は、$http とその部分を分離し、コントローラー コード内で順番に呼び出す必要があります。

つまり、コントローラーは少なくとも次のように記述する必要があります:
requestData.getData().then(callback function)

コールバック関数部分をカスタムサービスにカプセル化することをお勧めします

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