AngularJS承诺解析的结果在$ digest周期内异步传播。因此,
then仅在进入$
digest循环时才调用向其注册的回调。在
setTimeout执行“的AngularJS世界之外”,因此不会触发回调。
解决方案是使用
Scope.$apply还是
$timeout服务。这是带有$ apply的版本:
window.setTimeout(function() { console.log("Resolving promise"); $scope.$apply(function(){ deffered.resolve("worked"); }); }, 2000);这是固定的插件(Javascript):http
://plnkr.co/edit/g5AnUK6oq2OBz7q2MEh7?
p=
preview



