我的印象是绑定到我的HTML中的承诺
<ul ng-repeat='i in items'>
<li>{{i}}</li>
</ul>
(其中$scope.items
是承诺),当解析承诺时,范围将自动更新。
var _deferred = $q.defer();
$scope.items = _deferred.promise;
$scope.setItems = function() {
_deferred.resolve([
'Here',
'There',
'Everywhere'
]);
};
当我致电setItems()
时,承诺得到解决,但我的HTML不会更新。
我做错了什么?
答案 0 :(得分:3)
您设置项目的方式不正确。 $scope.items
不应该是Promise对象,但您应该使用Promise then
方法来设置项目:
_deferred.promise.then(function(items) {
$scope.items = items;
});