我遇到了一个问题,我正在使用Contentful.js库来检索Angular应用中的内容。它使用$http.get
函数,而不是使用success(data)
回调的普通done(data)
。我可以将$scope.lists
值设置为返回的数据,但由于某种原因它不会显示在HTML中。
这适用于使用标准$http
:
$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()
方法的列表视图不起作用:
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
])
有什么想法吗?
答案 0 :(得分:1)
很可能因为这个库没有针对AngularJS,所以它没有$scope.$apply()
来触发摘要周期,因此html没有得到更新。
修复将使用$scope.$apply()
回调完成回调。对此的JavaScript修复将是
$scope.$apply(function() {
$scope.lists = data
});
由于我没有使用这个库,因此done
回调实现可能会出错。