2016-08-25 11 views
0

У меня есть маршруты:параметра маршрут исчезает, а acessing маршрута

routes: { 
    "": "main", 
    "!/order/:id": "order", 
    "!/order": "order" 
}, 

Тогда я доступ, например, http://mysite.ru/#!/order/21. Но мой URL-адрес изменяется на: http://mysite.ru/#!/order/

Число 21 скрывается. Как сохранить этот номер в моем URL?

+1

Это не волшебство в магистральном маршрутизаторе. Я что-нибудь называю 'navigate()' в стеке вызовов? –

+0

Например, я обращаюсь к url ​​mysite.ru/#!/order/21 и добился успеха, но мой url стал mysite.ru/#!/order И после перезагрузки я потерпел неудачу, потому что id не определен. Пользователи не могут скопировать прямой url в мой заказ (mysite.ru/#!/order/21), потому что они видят только mysite.ru/#!/order без идентификационного номера. – Jenya

+0

Становится? По волшебству? –

ответ

3

Я думаю, что это каскадно. Попробуйте установить маршрутизацию общего порядка первого:

routes: { 
    "": "main",  
    "!/order": "order", 
    "!/order/:id": "order" 
}, 
+0

Спасибо, но моя маршрутизация тоже работает. Моя проблема заключается в сбое URL-адреса после перезагрузки страницы. – Jenya

+0

Например, я обращаюсь к URL-адресу http://mysite.ru/#!/order/21 и имею успех, но мой url становится http://mysite.ru/#!/order/ И после перезагрузки я потерпел неудачу, потому что id не определен. Пользователи не могут скопировать прямой url в мой заказ (http://mysite.ru/#!/order/21), потому что они видят только http://mysite.ru/#!/order/ без идентификационного номера. – Jenya

+0

Вы не должны перенаправляться с mysite.ru/#!/order/21 на mysite.ru/#!/order, если вы этого не хотите. Вы хотите, чтобы клиент увидел идентификатор? В противном случае может быть разумно сохранить идентификатор в глобальной переменной вместо URL-адреса. – BonifatiusK

2

Вы можете упростить маршрутизатор, сделав параметр :id необязательным, так как ваш обратный вызов является одинаковым для обоих маршрутов заказа.

routes: { 
    "": "main",  
    "!/order(/:id)": "order", 
},