Javascript-форум (https://javascript.ru/forum/)
-   Backbone.js (https://javascript.ru/forum/backbone/)
-   -   Не вызывается нужный Route (https://javascript.ru/forum/backbone/51429-ne-vyzyvaetsya-nuzhnyjj-route.html)

kuzroman 06.11.2014 14:19

Не вызывается нужный Route
 
Доброго времечка, может кто знает, из за чего может не вызываться роут? Код можно взглянуть на гитхабе -

https://github.com/kuzroman/srm.loc/...router/home.js

Всегда срабатывает index ный роут.
На сервере использую Laravel с его REST запросами.

kuzroman 06.11.2014 15:20

вот часть кода

App.Router.Home = Backbone.Router.extend({

routes: {
'' : 'index',
'page' : 'page'
},

index: function() {
console.log('роут Home!');
},

page: function() {
console.log('страница 12345');
}

})

Причем на #page реагирует, можно ли как то обращаться без решетки?
Или от такого синтаксиса никуда не деться? Как правильно?

Octane 07.11.2014 01:24

routes: {
    'page(/)' : 'page',
    '*default' : 'index'
},

kuzroman 07.11.2014 11:40

'*default' : 'index' - с этим я разобрался, хотя непонятно зачем писать символы после звездочки, ну бог с ним, пусть это остается на совести разработчиков.

(/) - это я так понимаю необязательный символ.

А как же быть с #(решеткой)?
Что нужно для того чтобы делать запросы без решетки?
Сейчас роут page сработает если в урле будет site.ru/#page
А хотелось бы тоже но без решетки.
Или это уже не забота бакбона?

Octane 07.11.2014 18:23

чтобы использовался History API, а не эмуляция через #hash
Backbone.history.start({pushState: true})

но если Backbone запустился с pushState:true, то роут уже не сработает на /#page, только /page, но для старых браузеров будет работать /#page


Часовой пояс GMT +3, время: 09:20.