0

私は本当に好きでうまく機能する ui-state ルーターで AngularJS を使用していますが、データの読み込みに関するクエリがあります。私の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.show 状態のときに大量のデータをフェッチしますが、これは素晴らしいことです。私が今やりたいことは、完了状態を表示することですが、データがリロードされるのを防ぎます。

そこにデータを保持する良い方法はありますか? ページに戻ってもう一度リロードする必要がある場合、データをリロードするのは非常に無駄に思えます。

4

1 に答える 1

0

データだけでなくコントローラー全体を共有し、ビューを変更したいようです。

1 つの解決策は、抽象的な基本状態を持ち、meetings.show2 つの子状態を作成することです:meetings.show.loadingmeetings.show.conclude.

このような構造を使用すると、抽象基本状態でコントローラーを定義し、2 つの子状態で templateUrl のみを設定できます (それらが親コントローラーを継承できるようにします)。

私はポイントを逃したかもしれませんが。私があなたのユースケースに対処していない場合、 の動作/外観をより詳細に説明してmeetings.showいただけmeetings.show.concludeませんか?

于 2013-05-16T17:41:56.017 に答える