2015-11-06 2 views
2

У меня есть ситуация в моем проекте, где мне нужно построить маршрут к маршруту, определенному за пределами текущей области. Скажем, у меня есть следующие настройки маршрутизацииПеренаправление на маршруты, определенные вне текущей области действия в aurelia

/ 
/cars 
/cars/buy 
/cars/sell 
/bikes 
/bikes/buy 
/bikes/sell 

Теперь на моей маршрутизации по умолчанию я определил, что есть 3 маршрутов /,/автомобили и/велосипеды. Когда/автомобили активированы, я добавляю rotues/sell и/buy в текущее определение маршрута. Теперь, когда пользователь находится внутри/cars/buy, я хотел бы добавить ссылку типа «Вы предпочитаете покупать велосипед вместо этого?» и ссылку на/велосипеды/купить.

Переключения между куплей/продажей осуществляются

router.navigateToRoute('buy'); 

и

router.navigateToRoute('sell'); 

В соответствующих показах шаблона.

Так им своего рода ищет что-то, что позволит мне сделать

router.navigateToRoute('bikes); 
router.navigateToRoute('buy'); 

В одном движении.

+0

Не можете ли вы указать маршрут, например. велосипед/купить маршрут может иметь имя под названием «buyBikes», вы можете просто перейти к этому, например router.navigateToRoute («buyBikes»); (p.s., чтобы дать маршруту имя просто добавить свойство имени при настройке маршрута) – Magrangs

+0

Ну, проблема в том, что маршрут покупки для велосипедов не объявляется до тех пор, пока не активируется маршрут/велосипеды. Так что технически маршрут еще не существует. – Anders

+0

Вы можете объявить маршруты в app.js? – Magrangs

ответ

3

Вы можете перейти непосредственно к пути маршрута (а не имя маршрута) с помощью

router.navigate('route/href'); 

Это будет работать, даже если ребенок маршруты не был зарегистрирован (маршрутизатор достаточно умна, чтобы направить ребенка и ждать его, чтобы настроить маршрутизатор дальше, прежде чем продолжить)

в вашем случае

router.navigate('bikes/buy'); 

из cars/buy должны работать нормально

+0

Работал как шарм :) Спасибо – Anders

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