mhmmm .. ok、答えはそれほど簡単ではありません。私は、あなたがtodo-list appにいくつかの変更を加えるだけで、バックボーン構造を使っていくつかの練習をすることをお勧めします。それは素晴らしい出発点です。したがって、コレクションのための素晴らしいbackbone.jsメソッドに慣れてください
基本的な考え方は次のとおりです。 visualsearchでは、「ファセット」のリスト、つまりキー/値オブジェクトの配列を取得できます。
var myFacets = visualSearch.searchQuery.facets();
//my facets is then something like [{"field1":"value1-a"},{"field2":"value2-c"}]
この後、あなたはiterativrely _underscore LIBからhinerithed WONDERFUL filter
方法であなたのコレクションをフィルタリングするmyFacets
要素を使用することができます。
どうすればよいですか?あなたはここに
_.each(myFacets,function(facet){
myCollection=myCollection.filter(function(item){
return item.get(facet.get('category')) == facet.get('value');
});
});
}
は、あなただけの値は、あなたの条項に従って該当する返しBACKBONE.JSのフィルタ方法を、使用はlibアンダースコアで_.eachメソッドを使用することができます。したがって、単一のファセットごとにコレクションを一度フィルタリングします。これはjavascriptに伝えるようなものです。「このファセット(値)と一致するコレクションの要素だけを返してください。」そして、あなたが持っているすべてのファセットに対して繰り返します。
これが役に立ちます。
ああ、最後のものは、ちょっとアイデアを混乱させるだけです:-):Visualsearchはbackbone.js上に構築されています。また、searchQueryオブジェクトはバックボーンコレクションだけですので、メソッドとそのプロパティを使用できます。基本的なバックボーンコレクション。これが明確でない場合は、この行を再度読んでください。これは、今後の実装で重要なポイントになる可能性があるためです。:-)
lib/js/modelsフォルダ内のsearch_jquery.jsファイルを見ることをお勧めします。それは非常に面白いです...
私は正常に私のアプリでvisualsearch.jsを使用し、私はまたそれを設定するいくつかのトラブルがあった。しかし、私はあなたの問題が何であるかを理解していません。ファセット出力を使ってコレクションをフィルタリングする方法を知らないのですか?あなたは例を挙げることができますか? –
私がよく知っている唯一の出力はsearchCollection.serialize()メソッドですが、私の目的にはあまり役に立ちません。より多くの配列に似た方法でデータにアクセスできる方が適しています。私はJavaScriptにまったく新しいので、いくつかの基本を見逃しているかもしれません...あなたのコレクションをフィルタリングするために「ファセット出力」についてもっと詳しく説明できますか? – kaspnord