如何在AngularJS中的Run块中等待一个Promise?
如何在AngularJS中的Run块中等待一个Promise?
在引导(bootstrapping)angular之前,我真的需要一些数据被加载。为此,我创建了一个 run
块。在这个 run
块中,我调用了一个服务的方法,从服务器加载一些数据。由于这是异步调用,JavaScript继续执行,导致一些未定义的对象出现在我的应用程序中。
我正在使用路由,但不能使用 resolve
属性。
有人能够提供一个解决方案,如何在 run
块中等待承诺被准备好?
编辑:
感谢提供的答案,我通过手动引导angular解决了这个问题:
$(document).ready(function () { $.ajax('/Data/GetDropdownData', {type:'POST'}).done(function (response) { app.run(['ListService', function (ListService) { ListService.setData(response); }]) angular.bootstrap(document, ["sma"]); }) })
admin 更改状态以发布 2023年5月22日
如我之前所评论的,将其放在这里
你可以尝试手动引导
当然,在这种情况下,您不能使用控制器和以 angular 方式获取数据。我认为您需要使用 jQuery 加载数据,在 jQuery 回调中引导您的 angular,然后使用从 jquery 获取的数据初始化您的作用域变量。