2016-10-04 2 views
0

Я два состояния, как это:Как сделать последнюю косую черту опциональной в угловом ui маршрутизаторе?

$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/приложение/список это перенаправить на главную страницу, как я могу сделать слэш по желанию? Я попытался поместить этот url '/ list/?: type?' но это не сработало. Должен ли я добавить перенаправление, если да, то как?

+0

На стороне примечания Я очень одобряю использование шаблона для загрузки автономных директив вместо указания контроллера и шаблонаURL для маршрута. ИМХО это делает для более чистых и более управляемых маршрутов. – Enzey

+0

@ Enzey Я использую угловые компоненты 1.5. – jcubic

ответ

1

Я не верю, что там недвижимости, чтобы сделать это, но вы можете сделать его работу пути создания подмаршрута с косыми чертами

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

Чтобы добавить дополнительные маршруты на вершине «приложение», вы можете просто игнорировать существование в «.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: '/', 
}) 
+0

Работает, но мне нужно '.state ('app.without', {url: '/ list', template: ''});' – jcubic

Смежные вопросы