javascript - Angularjs - 调用子状态时防止再次加载非抽象父状态

标签 javascript angularjs angular-ui-router ng-dialog

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

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

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

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

我试图在子状态下显示模式,当模式关闭时,应用程序返回到父状态。

最佳答案

您可以将父 Controller 的逻辑移动到某种 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() {

}

关于javascript - Angularjs - 调用子状态时防止再次加载非抽象父状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34200748/

相关文章:

javascript - 如何将 _.SortBy() 与对象数组一起使用?

javascript - AngularJS module.controller 与 $controllerProvider.register

javascript - 我们可以从 Facebook 共享对话框中得到回电​​吗

javascript - AngularJS ng-repeat 未检测到使用 ng-include 动态生成的数组

javascript - 语法错误: missing : after property id angular js

angularjs - Angular ionic ui-router,其他 parent 的相同 subview

javascript - 从孙子导航到父级时,AngularJS UI 路由器数据仍然存在

javascript - 发送 html+css 作为响应的简单 node.js 服务器

javascript - Uncaught ReferenceError : writeIn is not defined at change (<anonymous>:5:4) at <anonymous>:7:1

javascript - 在 DynamoDB 中搜索表失败时如何回调错误消息