0

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

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

4

1 回答 1

1

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

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

于 2013-07-10T06:36:13.113 回答