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

时间:2013-07-10 04:37:55

标签: javascript asynchronous angularjs

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

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

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找resolve的{​​{1}}属性,如下所述:Delaying AngularJS route change until model loaded to prevent flicker

基本上,如果您在第二个控制器中使用已加载资源的承诺,则在请求完成且数据准备就绪之前,不会对其进行实例化。