Параметр в начале маршрута в Durandal

Типичный маршрут в Дюрандале выглядит так:

Обычный – http://mysite.com/#/Home

Идентификатор — http://mysite.com/#/Person/123 (Person/:id)

Я пытаюсь выяснить, какие методы мне нужны на http://durandaljs.com/documentation/Router/ Мне нужно перезаписать, чтобы поддерживать что-то вроде этого:

http://mysite.com/#/Abc123/Home (:siteId/Home)

http://mysite.com/#/Abc123/Person/123 (:siteId/ Человек/:идентификатор)

Как бы я реализовал что-то подобное?


person Jason More    schedule 14.03.2013    source источник


Ответы (1)


Вы ответили на свой вопрос. Для реализации http://mysite.com/#/abc123/Home необходимо определить маршрут что моделирует, например:

var router = require('durandal/plugins/router');
router.mapRoute('#/:sideId/home','viewmodels/customViewModel','This is the title of the view');

когда кто-то идет по вашему маршруту, он перейдет к вашей customViewModel.

Просто помните, что маршрутизатор сначала перейдет к самому простому маршруту, поэтому упорядочите их правильно (например, если у вас есть router.mapRoute('','viewmodels/home','home view') в качестве первого маршрута, маршрутизатор всегда будет идти по этому маршруту, а не читать дальше в своей очереди маршрутизатора).

person RyanKeeter    schedule 16.03.2013