2016-10-13 4 views
0

bloodhoundを使用してlocalオプションをリセットしようとしています。私のウェブページ上に私は状況があります。ユーザーが2つのオプションのいずれかを選択すると、提案データが変更されます。しかし、私はローカルデータを設定するときに表示される提案を得ることができません。以下は、私が「スプレー」と呼ばれる配列を使用するように設定ブラッドハウンドを作成する方法である:ユーザーがスプレーを選択した場合bloodhoundローカルデータをリセットする

var dataSetBloodhound = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    local: spray 
}); 

だからjQueryのは、それをキャッチし、ローカル

//If spray is picked 
     if(checked == "Spray") { 
      // Clear the object 
      dataSetBloodhound.clear(); 
      // Set the local 'data' to spray 
      dataSetBloodhound.local = spray; 
      // Reinit the object 
      dataSetBloodhound.initialize() 
      // Prints out the local data.(This prints out the data of spray) 
      console.log(dataSetBloodhound.local); 
      //etc } 
にスプレー配列を設定しよう

ユーザーが肥料を選択した場合、fertilizer配列が渡される以外は、関数は上記と同じです。 私がリストに使用すると、私はそれらを動作させることができますが、私は血のローカルデータを交換することはできません。しかし、私がinitialize()の後に私はconsole.log(dataSetBloodhound.local)を見ることができ、コンソールの要素を見ることができますが、私がドロップダウンから提案を得ようとすると、それはうまくいきません。何か案は?

答えて

1

は、私はあなたが、あなたが

if(checked == "Spray") { 
     // Clear the object 
     dataSetBloodhound.clear(); 
     // Set the local 'data' to spray 
     dataSetBloodhound.local = spray; 
     // Reinit the object 
     dataSetBloodhound.initialize(true); 
     // Prints out the local data.(This prints out the data of spray) 
     console.log(dataSetBloodhound.local); 

は、マニュアルを確認してください設定することができます再初期化する必要があると思うhttps://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md