我正在尝试创建一个保持状态的模式。
每当调用子状态时,都会再次加载父状态(第二次)。是否可以在调用子状态时阻止加载父状态?
这是代码。如果需要更多信息,请发表评论。
.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/