0

状態を維持するモーダルを作成しようとしています。

子ステートが呼び出されるたびに、親ステートが再度ロードされます (2 回目)。子状態が呼び出されたときに親状態のロードを防ぐことは可能ですか?

これがコードです。さらに情報が必要な場合はコメントしてください。

.state('parent', {
    url: "/name/:id/:param1",
    templateUrl: "app/partials/parent.html",
    params: {
        param1: {
            value: null,
            squash: true
        }
    }
})
.state('parent.child', {
    url: "/:child",
    template: "<div class='some_name'></div>",
    onEnter: function (ngDialog, $state, $stateParams) {
        ngDialog.open({
            templateUrl: '/app/partials/dialog.html'
        }).closePromise.then(function () {
            $state.go('name', $stateParams);
        });
    }
});

親.html

<a class="some_class" 
    ui-sref="parent.child({id: id, param1: param1?param1:null,child: 'child'})">
    Open Child
</a>

モーダルを子状態で表示しようとしていますが、モーダルが閉じられると、アプリは親状態に戻ります。

4

1 に答える 1

1

親コントローラーのロジックをある種のactivate関数に移動できます。まだ行っていない場合は、呼び出す前に確認してくださいactivate()

簡単な例を次に示します。

.state('parent', {
    url: "/parent",
    template: "<div class='parent'></div>",
    controller: ParentController,
  })
  .state('parent.child', {
    url: "/child",
    template: "<div class='child'></div>",
    controller: ChildController
  });

function ParentController($state) {
  if ($state.is('parent')) {
    activate();
  }
}

ParentController.prototype.activate = function() {
  // load up resources, etc
}

function ChildController() {

}
于 2015-12-10T12:50:03.597 に答える