2017-03-09 14 views
3

フェッチが正しく動作していないように見えて、なぜAngularの$ http.getがこの場合に機能するのか、少し混乱します。私のフェッチ要求が進行中で、私はいくつかの画像を取り込むために必要な配列を作成しているのがわかります。しかし、それは私のHTMLページに何かを設定していません。少し遅れて関数を2回呼び出すと、うまく機能しているようです。私が$ http.getに変更すると、それも動作します。非同期アクションがあるフェッチリクエストをAngularで使用することはできますか?

$scope.getPhotos = (url) => { 
fetch(url).then(response => { 
    return response.json(); 
}).then(json => { 
    $scope.photoArray = json.photos; 
    console.log($scope.photoArray); 
}).catch(err => { 
    alert('Error'); 
}); 
} 
+0

フェッチリクエストの参照はできますか? –

+0

@VeeraBhadraRaoねえ。なぜ私はhttpでそれを使いたいのですか?主な理由は、特に、404エラーを処理するときに、よりクリーンであると思います。 – papernemesis

+4

@papernemesis角度1.x私は推測している?何らかの理由であなたの '.then' /' .catch'コールバック内で[ダイジェストをトリガーする](http://www.codingeek.com/angularjs/angular-js-apply-timeout-digest-evalasync/)が必要です – CodingIntrigue

答えて

2

fetchとして、あなたはそれが更新されたデータを使用してビューをリフレッシュするために終了した後のサイクルを消化トリガする必要がありますフェッチのためにこれが私のコードです。

$scope.$apply()メソッドで行うことができます。

方法httpメソッドは自動的にフードの下でダイジェストサイクルをトリガーするので、このメソッドを使用するときに気にする必要はありません。

関連する問題