Angular嵌套路由,无需重新加载父数据

时间:2013-05-16 16:40:38

标签: ruby-on-rails-3 angularjs

我正在使用AngularJS和ui-state路由器,我非常喜欢并运行良好,但我有一个关于数据加载的查询。在我的routes.js文件中,我定义了以下路由

    .state("meetings.show", {
      url: "/{meetingId}",
      views: {
        "@default": {
          controller: "MeetingsCtrl",
          templateUrl: "/templates/meetings/show.html"
        }
      }
    })


      .state("meetings.show.conclude", {
        url: "/conclude",
        views: {
          "@default": {
            controller: "MeetingsCtrl",
            templateUrl: "/templates/meetings/conclude.html"
          }
        }
      })

在meetings控制器中,当处于meetings.show状态时,它会获取大量数据,这很棒。我现在想做的是显示结束状态但是阻止重新加载数据。

有没有什么好方法可以保存数据,如果我要回到页面并且必须重新加载它,重新加载数据似乎非常浪费。

1 个答案:

答案 0 :(得分:0)

看起来您想要共享整个控制器 - 而不仅仅是数据 - 并更改视图。

一种解决方案是使用抽象基本状态meetings.show并创建两个子状态:meetings.show.loadingmeetings.show.conclude

使用这样的结构,您可以在抽象基本状态上定义控制器,并仅在两个子状态上设置templateUrl(允许它们继承父控制器)。

我可能已经错过了这一点。如果我还没有解决您的使用案例,您是否介意更深入地描述meetings.showmeetings.show.conclude的行为/外观?