0

我正在尝试创建一个将保持状态的模式。

每当调用子状态时,都会再次加载父状态(第二次)。调用子状态时是否可以防止加载父状态?

这是代码。如果需要更多信息,请发表评论。

.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 回答