Javascript 如何为非抽象状态创建默认嵌套状态

Javascript 如何为非抽象状态创建默认嵌套状态,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我使用的ui路由器如下所示: 3个主要状态主页,配置文件和设置如下: 第二个状态profile有两个嵌套状态profile.about和profile.main 我需要在索引页面上单击配置文件状态加载配置文件视图,并重定向到默认嵌套状态,即profile.about 这是一个关于我到目前为止所得到的 我知道这些解决方案: 而其他的,但都需要一个抽象的父对象,这是不可查找的,因此是抽象的 所以,总结一下我的问题是如何为非抽象状态创建嵌套的默认视图?如注释中所述,这里的解决方案通常是使

我使用的ui路由器如下所示:

3个主要状态
主页
配置文件
设置
如下:

第二个状态
profile
有两个嵌套状态
profile.about
profile.main

我需要在索引页面上单击配置文件状态加载配置文件视图,并重定向到默认嵌套状态,即
profile.about

这是一个关于我到目前为止所得到的

我知道这些解决方案:

而其他的,但都需要一个抽象的父对象,这是不可查找的,因此是抽象的


所以,总结一下我的问题是如何为非抽象状态创建嵌套的默认视图?

如注释中所述,这里的解决方案通常是使用此处所述的.when()定义:

在2.0.13之前的版本中,我们可以像这样使用本机解决方案(myService是一些默认值的位置…如果没有参数,则不需要):

但在版本2.0.13中进行修复后,这将不起作用,但我们可以通过以下解决方法实现:

var onChangeConfig = ['$rootScope', '$state',
 function ($rootScope, $state) {

  $rootScope.$on('$stateChangeStart', function (event, toState) {    
    if (toState.name === "app.list") { 
      event.preventDefault();
      $state.go('app.list.detail', {id: 2});
    }
  });

}]

也可以看到一些其他例子的bug报告:

检查这个问答,用最新的UI路由器版本感谢这个问题,这样你会考虑发布一个答案而不是评论,所以我可以接受它并把它标记为解决吗?这个解决方案的后期版本对我来说是有效的,但是它使量角器超时了。
var onChangeConfig = ['$rootScope', '$state',
 function ($rootScope, $state) {

  $rootScope.$on('$stateChangeStart', function (event, toState) {    
    if (toState.name === "app.list") { 
      event.preventDefault();
      $state.go('app.list.detail', {id: 2});
    }
  });

}]