Javascript 防止在ui路由器中重新加载父控制器

Javascript 防止在ui路由器中重新加载父控制器,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我对ui路由器中的嵌套视图有问题 我的布局是: site.search ----------------- site.search.runs ----------------- site.search.runs.scheme ----------------- site.search.runs.scheme.payment ----------------- Back方法调用这个$state.go('^',{Back:true},{location:false,inherit:false}) 一

我对ui路由器中的嵌套视图有问题

我的布局是:

site.search ----------------- site.search.runs ----------------- site.search.runs.scheme ----------------- site.search.runs.scheme.payment -----------------
Back方法调用这个$state.go('^',{Back:true},{location:false,inherit:false})

一个肮脏的技巧是将控制器代码包装在if语句中,然后执行类似的操作(这绝不是最好的方法,但肯定会奏效):


取决于调用$state.go()的时间

您可以在back方法
$state.go('^',{back:true},{location:false,inherit:false,notify:false})上尝试notify:false标志

如果你试图调用Stest.Go,在已经过渡的状态中间,你应该试试$STATE。

$rootScope.$on('$stateChangeStart', function(event, toState) {
    $state.transitionTo('login');
}
我发现Transitiono不会重新加载父控制器

$state.transitionTo('^', $stateParams, {
            reload: false, inherit: false, notify: false
        });

如果使用点表示法,则状态上的父属性是多余的,因此可能会导致问题,因为只需要一个。我会检查$state。$current,当您呼叫“返回”时,以确保您确实是家长孩子的一部分。

这是不可能的,因为您要在每个新状态下替换
ui视图
内容。每次发生这种情况时,视图和控制器都会被销毁/重新实例化。感谢您的快速回复
$rootScope.$on('$stateChangeStart', function(event, toState) {
    $state.transitionTo('login');
}
$state.transitionTo('^', $stateParams, {
            reload: false, inherit: false, notify: false
        });