angularjs + persistencejs + $ q(推迟)

时间:2013-02-18 08:00:23

标签: angularjs persistence deferred

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

var defer = $q.deferred();

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

对于Angularjs的承诺,then仅在摘要周期中触发。

如果您的Person对象在您的服务中,则可以注入$rootScope和 致电$apply()反对它让then开火。