2015-01-12 31 views
1

我使用的UI路由器如下:如何使一个默认的嵌套状态非抽象状态

3个主要国家homeprofilesettings这样的: enter image description here

第二届国家profile有2个嵌套的状态profile.aboutprofile.main enter image description here

我需要的索引页面上的国企点击加载纵断面图和r edirects到这是profile.about这里

enter image description here

这里有一个plunker与我走到这一步,默认的嵌套状态。

我知道这样的解决方案:

等,而所有需要一个抽象父是不可点击因此抽象。

因此,总结我的问题是如何为一个非抽象的状态做一个嵌套的默认视图?

+1

检查本问答http://stackoverflow.com/a/27131114/1679310用最新的UI路由器版本 –

+0

pluns问题谢谢,这是否你会考虑发布一个答案,而不是一个评论,所以我可以接受它并标记此如何解决? –

回答

1

正如意见中讨论,这里的解决办法通常是用。当()确定指标如下desribed:

在版本2.0.13我们可以前使用像这样的本地解决方案(myService是一个默认值的地方...如果没有参数,则不需要)

var whenConfig = ['$urlRouterProvider', function($urlRouterProvider) { 

    $urlRouterProvider 
     .when('/app/list', ['$state', 'myService', function ($state, myService) { 
      $state.go('app.list.detail', {id: myService.Params.id}); 
    }]) 
    .otherwise('/app'); 
}]; 
... 
app.config(whenConfig) 

但在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}); 
    } 
    }); 

}] 

又见这个错误报告对其他一些例子:https://github.com/angular-ui/ui-router/issues/1584

+0

该解决方案的更高版本适用于我,但它使量角器超时。 – Swordfish0321