簡體   English   中英

如何在角度ui路由器中使最后一個斜杠為可選?

[英]How to make last slash optional in angular ui router?

我有兩種狀態:

    $stateProvider.state('app', {
        url: '/app',
        template: '<app-index></app-index>',
        data: {},
        resolve: {}
    });
    $stateProvider.state('app.list', {
        url: '/list/:type?',
        template: '<app-list></app-list>',
        data: {},
        resolve: {}
    })

它工作正常,但是當我鍵入url / app / list時,它將重定向到主頁,我如何使斜杠為可選? 我嘗試將這個網址設為'/ list / ?: type?' 但這沒用。 我應該添加重定向,如果是,那么如何?

我不相信有屬性可以做到這一點,但是您可以通過設置帶有斜線的子路由來使其工作

.state('app', {
    url: '/app',
    template: '<app-index></app-index>',
})
.state('app.withSlash', {
    url: '/',
})

要在“ app”之上添加其他路由,您可以忽略“ .withSlash”的存在

.state('app.withOtherParam', {
    url: '/:id',
})

這是路線的示例,其中斜杠是可選的,並且在其后有一個附加參數。

.state('app', {
    url: '/app',
    abstract: true,
    template: '<ui-view/>',
})
.state('app.specificPage', {
    url: '/',
    template: '<someTemplate>'
})
.state('app.withId', {
    url: '/:id',
    template: '<someTemplate>',
})
.state('app.withId.withSlash', {
    url: '/',
})

暫無
暫無

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

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