AngularJs:解析promise不会更新我的范围

时间:2014-11-16 21:19:17

标签: angularjs angular-promise

我的印象是绑定到我的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不会更新。

我做错了什么?

Plunker here

1 个答案:

答案 0 :(得分:3)

您设置项目的方式不正确。 $scope.items不应该是Promise对象,但您应该使用Promise then方法来设置项目:

_deferred.promise.then(function(items) {
    $scope.items = items;
});

演示:http://plnkr.co/edit/4dtyniFayCHKrD1exWV1?p=preview