我的角度应用程序的主页有几个链接到其他页面,每个页面需要不同的资源(但都有相同的控制器)。主页控制器具有选择下一页的功能,该页决定加载哪个资源,另一个控制器对资源进行操作(它们看起来都一样,所以控制器不关心)并将其发送到观点。
我希望有一个系统,一旦用户选择从主页到哪里,就会为该会话加载资源,除非用户明确说要卸载它。我有一个MyResource
服务,可以实现initialize
和get
个功能。第一页的控制器调用initialize(option)
,第二页的控制器只需在页面被调用时调用get
。然而,当主页被点击时,第二个控制器立即被实例化,调用get
,并且找不到资源,因为用户还没有选择要加载的资源。如何使第二个控制器等待调用get
,直到它所属的部分被实际命中?
答案 0 :(得分:1)
我认为您正在寻找resolve
的{{1}}属性,如下所述:Delaying AngularJS route change until model loaded to prevent flicker
基本上,如果您在第二个控制器中使用已加载资源的承诺,则在请求完成且数据准备就绪之前,不会对其进行实例化。