2

当使用 angularjs 提供的 deferred 方法并查询数据库本地存储时,“resolve”似乎不起作用。请参阅以下示例。"then" 动作永远不会被触发。当尝试使用 setTimeout 而不是“Person.all()”指令时,它可以工作。

var defer = $q.deferred();

Person.all().list(null, function (persons) {
   defer.resolve(persons);
});

defer.promise.then(function (persons) {
   console.log('resolved');
});

感谢您的帮助。

4

1 回答 1

4

对于 Angularjs 的承诺,then只在摘要循环中触发。

如果你的Person对象在你的服务中,你可以注入$rootScope并调用$apply()它来then触发它。

于 2013-02-18T08:14:26.490 回答