1
對於某些人來說,這看起來很平凡,但我有一個應用程序執行搜索並使用包含搜索詞的散列更新瀏覽器歷史記錄。瞭解具有查詢參數的Backone js路由
routes: {
"": "search",
"search/:query": "searchSetup"
},
根據我對標籤的理解,有效的標籤不應包含空格。每個人如何在用戶搜索例如視頻遊戲。 似乎當我搜索上面的術語導航事件被激發兩次 我的正則表達式目前是糟糕的。
RT.App.searchRouter = Backbone.Router.extend({
initialize: function() {
RT.App.vent.on("change:hash", function(searchTerm) {
console.log("chnaging hash")
this.navigate('search/'+searchTerm);
}, this);
},
routes: {
"": "search",
"search/:query": "searchSetup"
},
createView: function() {
//has view already been instatiated?
if(!$("#forms-demo").length) {
new RT.App.views.AdvancedSearchView({
el: '#ui-search',
model: new RT.App.models.AdvancedSearch()
});
}
},
search: function() {
//clear any previous search if any
this.createView();
},
searchSetup: function(query) {
this.createView();
var $searchinputEl = $("#search-term"),
//check if storage entry exists and if it matches the query entered
storedSearchTerm = amplify.store('search');
if((!_.isUndefined(storedSearchTerm) && !_.isUndefined(query)) && (storedSearchTerm.term === unescape(query))) {
//retrieve storage and perform search based on preferences
RT.App.searchCategoryOptions.attributes = storedSearchTerm.sections;
//each filter view options should now set the correct options
RT.App.vent.trigger("change:options");
//add search query to search input
$searchinputEl.val(storedSearchTerm.term);
//trigger search
$(".trigger-search").trigger("click");
}
}
});
$(function(){
// Instantiate the router
var searchRouter = new RT.App.searchRouter();
if(Backbone.History.started) {
Backbone.history.stop();
}
Backbone.history.start();
});