Если я понимаю вопрос, вам нужен произвольный URL, который включает в себя ваш поисковый термин как часть URL. И я подозреваю, что ваша проблема в том, что вы не понимаете, как это сделать с архитектурой routes
.
Маршруты - это не что иное, как регулярные выражения:
var MyController = Backbone.Controller.extend({
routes: {
RegExp('^search/(.*)$'): "handle_search"
},
handle_search: function(search_term) {
search_term = decodeURIComponent(search_term);
/* Do something ajaxy with the search term in the search model,
which in turn triggers the search view to refresh... */
}
});
После этого вы бы применили обработчик click
к кнопке в форме поиска (или, возможно, менеджер keypress==13
для самого поля поиска), который вместо того, чтобы что-то делать, просто устанавливает window.location.hash = escapeURIComponent($('#search_field').val())
Это окольный путь, но он выполняет свою работу. Ваши URL будут безобразными со всеми% XX в них, но все они будут добавлены в закладки, что является единственной причиной сделать что-то подобное.