0

我将 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"
          }
        }
      })

在会议控制器中,当处于 meeting.show 状态时,它会获取一堆数据,这很棒。我现在要做的是显示结束状态但防止重新加载数据。

有什么好的方法可以将数据保存在那里,如果我只是要返回页面并不得不再次重新加载数据,重新加载数据似乎非常浪费。

4

1 回答 1

0

看起来你想要共享整个控制器——而不仅仅是数据——并改变视图。

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

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

不过,我可能错过了重点。如果我没有解决您的用例,您介意更深入地描述其行为/外观meetings.showmeetings.show.conclude

于 2013-05-16T17:41:56.017 回答