Angular中的异步资源-如何在控制器之间使用它们

Asynchronous resources in Angular - how to use them between controllers?

本文关键字:之间 控制器 异步 资源 Angular      更新时间:2023-09-26

我的angular应用程序主页有几个指向其他页面的链接,每个页面都需要不同的资源(但都有相同的控制器)。主页控制器有一个选择下一页的功能,它决定加载哪个资源,另一个控制器对资源进行操作(它们看起来都一样,所以控制器不在乎)并将其发送到视图。

我希望有一个系统,一旦用户选择从主页转到哪里,就会为该会话加载资源,除非用户明确表示要卸载它。我有一个实现initializeget功能的MyResource服务。第一页的控制器调用initialize(option),第二页的控制器在页面被击中时应该只调用get。然而,当主页被点击时,第二个控制器会立即实例化,调用get,并且由于用户尚未选择加载哪个,所以找不到资源。如何让第二个控制器等待调用get,直到它所属的部分被实际命中?

我认为您正在寻找$routeProviderresolve属性,如下所述:延迟AngularJS路由更改,直到加载模型以防止闪烁

基本上,如果您在第二个控制器中使用已加载资源的promise,那么在请求完成并且数据准备好之前,它不会被实例化。