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

Emi*_*mil 0 javascript search backbone.js

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

我感谢每一个答案:)

Elf*_*erg 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... */
    }
});
Run Code Online (Sandbox Code Playgroud)

之后,您可以将click处理程序应用于搜索表单上的按钮(或者可能是keypress==13搜索字段本身的管理员),而不是实际执行任何操作,只需设置window.location.hash = escapeURIComponent($('#search_field').val())

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