gpt4 book ai didi

javascript - 在 Angular Promise 中使用 'Done' 而不是 'Success'

转载 作者:行者123 更新时间:2023-12-03 11:57:05 27 4
gpt4 key购买 nike

我在使用 Contentful.js 库检索 Angular 应用程序中的内容时遇到了问题。它使用带有 done(data) 的函数,而不是带有 success(data) 回调的普通 $http.get。我可以将 $scope.lists 值设置为返回的数据,但由于某种原因它没有显示在 HTML 中。

这适用于使用标准 $http 的详细 View :

$http.get('https://cdn.contentful.com/spaces/xxxxxxx/entries?sys.id=' + $routeParams.listId + '&include=10&access_token=xxxxxxxx').success (data) ->
$scope.list = data
console.log $scope.list

这不适用于使用 done() 方法的 ListView :

client = contentful.createClient
accessToken: 'xxxxxxxx'
space: 'xxxxxxxxx'

listControllers.controller('ListListCtrl', ['$scope', '$http', ($scope, $http) ->
$scope.lists = ""
client.entries({'content_type': 'xxxxxxxx', 'include': 1}).done (data) ->
$scope.lists = data
console.log $scope.lists
])

有什么想法吗?

最佳答案

很可能是因为这个库不是针对 AngularJS 的,所以它没有执行 $scope.$apply() 来触发摘要周期,因此 html 没有得到更新。

修复方法是使用 $scope.$apply() 将回调中完成的分配包装起来。JavaScript 对此的修复方法是

$scope.$apply(function() {
$scope.lists = data
});

由于我没有使用这个库,所以我的 done 回调实现可能是错误的。

关于javascript - 在 Angular Promise 中使用 'Done' 而不是 'Success',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567113/

27 4 0