Javascript ui路由器和angularjs中的并行状态-防止重新加载

Javascript ui路由器和angularjs中的并行状态-防止重新加载,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我在ui路由器中有一个“并行状态”设置,允许url和状态确定DOM的两个不同部分(左侧和右侧)。右侧始终为“条形”,左侧在baz和bat之间变化。存在一个抽象的父状态,它通过项目id确定要显示的项目。更改父状态/项目id会更改baz、bat和bar的内容。代码如下所示,可以正常工作 问题是,当状态从project.baz->project.bat转换时,“bar”视图会重新初始化(例如,指令会重新运行链接函数),这会导致一些ui问题 问题:当状态从project.baz->project.bat

我在ui路由器中有一个“并行状态”设置,允许url和状态确定DOM的两个不同部分(左侧和右侧)。右侧始终为“条形”,左侧在baz和bat之间变化。存在一个抽象的父状态,它通过项目id确定要显示的项目。更改父状态/项目id会更改baz、bat和bar的内容。代码如下所示,可以正常工作

问题是,当状态从project.baz->project.bat转换时,“bar”视图会重新初始化(例如,指令会重新运行链接函数),这会导致一些ui问题

问题:当状态从project.baz->project.bat更改时,是否有方法防止“bar”视图被重新初始化?当然,当它的父状态(即项目id)更改时,它应该重新初始化

谢谢

$stateProvider
.state('project', {
        abstract: true,
        url: "/qux/:project_id",
        views: {
           "left": {
              templateUrl: 'foo.html',
              controller: 'FooController'
           },
           "right": {
              templateUrl: 'bar.html',
              controller: 'BarController'
           }
        }
     })

     .state('project.baz', {
        url: "/baz",
        views: {
           "": {
              templateUrl: 'baz.html',
              controller: 'BazController'
           },
           "right": {
              templateUrl: 'bar.html',
              controller: 'BarController',

           }
        }
     })

     .state('project.bat', {
        url: '/bat',
        views: {
           "": {
              templateUrl: 'bat.html',
              controller: 'BatController'
           },
           "right": {
              templateUrl: 'bar.html',
              controller: 'BarController'
           }
        }
     })

我无法重现您描述的问题:

如果子视图上的
“right”
视图与父状态视图上的视图相同,则可能不需要在子视图上指定该视图:

$stateProvider
.州(“项目”{
摘要:没错,
url:“/qux/:项目id”,
观点:{
“左”:{
templateUrl:'foo.html',
控制器:“FooController”
},
“对”:{
templateUrl:'bar.html',
控制器:“BarController”
}
}
})
.state('project.baz'{
网址:“/baz”,
templateUrl:'baz.html',
控制器:“控制器”
})
.state('project.bat'{
url:“/bat”,
templateUrl:'bat.html',
控制器:“蝙蝠控制器”
});

但是,即使是从您的问题中逐字复制代码,我也无法重现问题。

请看一下ui路由器extras提供的粘性状态(并行状态)和深度状态重定向功能,谢谢。看来我需要的是粘性状态。当我下一次彻底检查代码时,我会试一试。现在,为了稳定,我不会。你知道目前用户界面路由器的稳定性吗?谢谢你。我将制作一个plinkr,该问题可复制,然后在此处更新。