我有一些类似主控制器的东西在示波器中设置了一些东西,所以内部控制器可以使用它。
那个设置工作是异步的,所以我把它包装在一个promise中,但是它没有执行它的回调,除非它已经解决了(我尝试设置一个断点,如果我等待的话,它实际上运行了{{1回调)。
这是一个小提琴,可以通过超时而非网络请求重现我的问题:http://jsfiddle.net/LMv8v/1/
then
<div ng-app>
<div ng-controller="configController">
<div ng-controller="testC">
{{test}}
{{foo}}
</div>
</div>
</div>
它显示'超时',但不显示' then ... '消息。
(我知道这更适合服务,但我已经有很多嵌套作用域的代码,我想在开始重构之前让它工作)
答案 0 :(得分:2)
如果您正在使用$.getJSON()
(来自我猜的jQuery)
您将遇到类似的问题,您正在解决Angular世界之外的问题,请尝试以下方法。
$.getJSON('ajax/test.json', function(data) {
$scope.$apply(function(){
deferred.resolve({
'foo' : 'baz'
});
});
});