Backbone.js使用查询字符串进行搜索

时间:2011-07-05 20:02:38

标签: javascript search backbone.js

我刚开始看Backbone.js。现在我不打算创建一个类似谷歌的简单搜索,其中网址更新“随时随地”。因此,如果您提交表单,我希望该网址更新为http://www.site.com/#/search/I-searched-for-something

我感谢每一个答案:)

2 个答案:

答案 0 :(得分:5)

如果我理解了这个问题,您需要一个包含搜索字词的任意网址作为网址的一部分。我怀疑你的问题是你没有看到如何使用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管理器),而不是实际执行任何操作,只需设置{ {1}}

它是迂回的,但它完成了工作。你的网址中的所有%XX都会很难看,但是它们都是可收起的,这是做这样的事情的唯一原因。

答案 1 :(得分:1)

Emil,我想我有一个类似的用例,用户可以选择然后触发搜索。我希望在地址栏中更新搜索,以便将其添加为书签。要更新地址栏,我打算使用Backbone navigate

对于多个搜索字词,我打算1.将它们设置为我的集合中的值,然后触发对集合的提取2.向集合中询问网址并使用导航更新地址栏。