我有一些嵌套状态:
$stateProvider.state({
name: 'parent',
url: '/parent',
abstract: true,
template: '<ui-view/>'
})
.state({
name: 'parent.child1',
url: '/:id/child1',
templateUrl: 'path/to/template'
})
.state({
name: 'parent.child1.child2',
url: '/child2',
onEnter: function($state, $stateParams, $rootScope, $uibModal) {
$uibModal.open({
templateUrl: 'path/to/template',
controller: 'Controller',
controllerAs: 'vm',
size: 'md',
backdrop: 'static'
}).result.then(function(result) {
if (result) {
return $state.transitionTo("parent.child");
}
});
}
});
第二个子状态是一个模态,当它的表单提交完成时,应该关闭模态,转换回第一个子状态,然后重新加载第一个子状态。要做到这一点,我正在使用:
function close() {
$uibModalInstance.dismiss();
$state.transitionTo('parent.child1', $stateParams, {reload: true});
}
模态正确关闭,发生转换,但没有重新加载。我也尝试使用$state.go('parent.child1', $stateParams, {reload: true});
,但同样的事情发生了。
有谁知道我做错了什么?谢谢!
更新
通过取消嵌套第二个子节点(即将parent.child1.child2更改为parent.child2),我能够达到预期的效果。
从技术上讲,这对我正在做的事情很好,但如果有人有任何想法,我还是宁愿窝住它们。
答案 0 :(得分:0)
reload属性也接受字符串值,因此您可以明确指定父状态名称,例如Interface<? extends T>
尝试一下,看看它是否有所作为