私はBackbone.jsを見始めました。今、私は、googleのような単純な検索を作成して、URLが "外出先で"どこに更新されるのか望んでいません。あなたがフォームを提出すれば、私はhttp://www.site.com/#/search/I-searched-for-somethingに更新するURLを欲しいです。クエリ文字列でBackbone.jsを検索
私はすべての答えを感謝:)
私はBackbone.jsを見始めました。今、私は、googleのような単純な検索を作成して、URLが "外出先で"どこに更新されるのか望んでいません。あなたがフォームを提出すれば、私はhttp://www.site.com/#/search/I-searched-for-somethingに更新するURLを欲しいです。クエリ文字列でBackbone.jsを検索
私はすべての答えを感謝:)
私は質問を理解していれば、あなたは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... */
}
});
、あなたは(検索フィールド自体にまたは多分keypress==13
マネージャー)検索フォーム上のボタンにclick
ハンドラを適用することはなく、実際に何かをして、ちょうどセットするwindow.location.hash = escapeURIComponent($('#search_field').val())
それはラウンドアバウトですが、それは仕事を完了します。あなたのURLはすべて%XXのもので醜いですが、それらはすべてブックマーク可能です。これがこのようなことを行う唯一の理由です。
エミール私は、ユーザーが選択して検索をトリガできるような同様のユースケースがあると思います。アドレスバーにその検索を更新してブックマークすることができます。アドレスバーを更新するには、私は使用を計画していましたBackbone navigate
複数の検索語については、私はそれらをコレクションの値として設定してからコレクションのフェッチをトリガーします。2.コレクションにURLとnavigateを使用してアドレスバーを更新します。
ありがとうございます!悪い説明をして申し訳ありません。それはだった: 'window.location.hash = escapeURIComponent($( '#search_field')。val())'私が探していた:)しかし、もし私が2つ以上の選択メニューを持っていて、同じ方法? – Emil
私はその質問にはっきりしていません。 * anything *をルートにすることができ、その代わりに、encode/decodeURIComponentのペアで何かをルーティングすることができます。ここで何を達成しようとしていますか? –