我真的需要在bootstrapping angular之前加载一些数据.出于这个原因,我创建了一个run块/在这个run块中我调用了一个服务上的方法,该服务从服务器加载一些数据.由于这是一个异步调用,JavaScript会进一步执行,这会导致我的应用程序中出现一些未定义的对象.
我正在使用路线,但不能选择使用该resolve物业.
有人能提供一个关于如何等待承诺在run块中准备好的解决方案吗?
编辑:
感谢给定的答案,我通过手动引导角度来解决它:
$(document).ready(function () {
$.ajax('/Data/GetDropdownData', {type:'POST'}).done(function (response) {
app.run(['ListService', function (ListService) {
ListService.setData(response);
}])
angular.bootstrap(document, ["sma"]);
})
})
Run Code Online (Sandbox Code Playgroud)
正如我评论的那样,将其放在这里
您可以尝试手动引导
<script>
angular.element(document).ready(function() {
angular.bootstrap(document);
});
</script>
Run Code Online (Sandbox Code Playgroud)
当然,在这种情况下,您不能使用控制器和角度方式来获取数据。我认为你必须通过 jQuery 加载数据,在 jquery 回调中引导你的角度,然后使用从 jquery 获得的数据初始化你的作用域变量。