是否可以使用Angular的获取请求?

时间:2017-03-09 14:52:39

标签: javascript angularjs get ecmascript-6 fetch

我有点困惑为什么fetch似乎没有正常工作以及为什么Angular的$ http.get在这种情况下有效。我的获取请求正在进行,我可以看到我正在创建我需要填充一些图像的数组。但它不会在我的HTML页面上填充任何内容。如果我在一点延迟后调用该函数两次,它似乎确实有效。如果我将其更改为$ http.get,它也可以。这是我的fetch代码:

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

1 个答案:

答案 0 :(得分:3)

由于fetch是异步操作,因此您应该在完成后触发摘要周期,以便使用更新的数据刷新视图。

您可以通过$scope.$apply()方法完成此操作。

Angular http方法会在引擎盖下自动触发摘要循环,因此在使用此方法时您不需要打扰它。