Javascript 防止在ui路由器中重新加载父控制器
我对ui路由器中的嵌套视图有问题 我的布局是: site.search ----------------- site.search.runs ----------------- site.search.runs.scheme ----------------- site.search.runs.scheme.payment -----------------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}) 一
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
});