簡體   English   中英

如何使用ui-router將子狀態或孫狀態設置為默認索引狀態?

[英]How to set up a child or grandchild state as the default index state with ui-router?

我在ui路由器中使用angular。 我想做的是當用戶瀏覽到諸如以下的鏈接時:

/
/contacts
/contacts/:id

它們默認都顯示與鏈接/ contacts /:id相同的內容,帶有默認的:id,並且URL保持不變(不會更改為/ contacts /:id )。

在ui-router Wiki上有一個關於此的常見問題解答,但它沒有演示如何與孫輩甚至更深的后代狀態進行初始化。

如何:設置默認/索引子狀態

我嘗試了幾種不同的狀態設置,均無濟於事。 我做錯了嗎? 這是示例頁面:

ui路由器測試

用.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>'
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM