如何使用ui-router将子孙状态设置为默认索引状态?

时间:2013-09-11 03:33:09

标签: javascript angularjs angular-ui-router

我正在使用ui-router角度。我想做的是当用户浏览以下链接时:

/
/contacts
/contacts/:id

它们默认显示与链接 / contacts /:id 相同的内容,默认值为:id,并且网址保持不变(未更改为 / contacts /:id < /强>)。

ui-router wiki上有一个关于此问题的常见问题解答,但它没有演示如何使用孙子甚至更深层次的后代状态进行初始化。

  

How to: Set up a default/index child state

我尝试了几种不同的状态设置但无济于事。我做错了吗?这是示例页面:

  

ui-router-test

1 个答案:

答案 0 :(得分:0)

用.when()解决了这个问题。样品:     ui-router-test

$urlRouterProvider
    .when('/', ['$state', function ($state) {
        $state.transitionTo('contacts.detail', {contactId: 1}, {location: false});
    }])
    .when('/contacts', ['$state', function ($state) {
        $state.transitionTo('contacts.detail', {contactId: 1}, {location: false});
    }])
    .otherwise('/');

$stateProvider
.state("home", {
    url: "/"
})
.state('contacts', {
    url: '/contacts',
    template: 'Contacts: <div ui-view></div>'
})
.state('contacts.detail', {
    url: '/:contactId',
    template: '<p class="lead">Contact ID is {{$stateParams.contactId}}</p>'
});