2016-01-05 1 views
0

У меня есть серверное приложение node.js (служба API остатка). У меня также есть Backbone + Marionette (для моего приложения RESTful для серверов) приложение с несколькими страницами на стороне клиента. В настоящее время у меня есть навигационная система Marionette, которая работает очень хорошо с такими ссылками, как domain.com/#feedbacks (страницы отображаются на стороне клиента с данными ajax). Но я также хочу добавить серверную навигацию, например. domain.com/feedbacks (для двигателей Google и других двигателей).Marionette app 2-way navigation with history api

Вопрос: Как я могу сопоставить серверные и клиентские навигационные системы?

Mb Я должен попытаться добавить обработчик событий для всех ссылок на странице, который будет делать что-то вроде Backbone.history.navigate("/feedbacks")? Но у меня много разных хэш-ссылок (#feedbacks) ... Мб есть более элегантное решение? Спасибо.

Мой текущий марионетка маршрутизатор:

var AppRouter = Backbone.Blazer.Router.extend({ 
    routes: { 
     '': new HomeRoute(), 
     'sell': new SellRoute(), 
     'login': new LoginRoute(), 
     'feedbacks': new FeedbacksRouter(), 
     'product/:id': new ProductRoute(), 
     'profile/:id': new UserRoute() 
    } 
    }) 

ответ

0

Я просто должен был использовать:

Backbone.history.start({pushState: true}) 

вместо:

Backbone.history.start(); 

Это делает позвоночник маршрутизации работу без # символы