2012-11-26 20 views
12

タイプアップのためにsourceを変更する方法を探しています。ブートストラップ先読み - ソースの変更

例えば、私は次の2つのリストを持っていると仮定し、ケースに応じて、別のソースを使って先験的な作業をしたいと思います。

var list1 = ["this", "is", "first", "list"], 
    list2 = ["second", "list", "comes", "here"]; 

$("selector").typeahead({source: list1}) 

その後、私は

$("selector").typeahead({source: list2}) 

を行うと、入力ボックスに入力を開始するとき、最初のリストは、新しいものの下に表示されます。

私はまだ

$("selector") 
    .removeData() 
    .typeahead({source: list2}) 

をやってみました、それは効果がありません。

$("selector").data('typeahead').source = list2; 
+1

が重複する可能性:私は初期化された先行入力を破棄し、新しいソースでそれを初期化し直すことにより、ソースを更新することができました.com/questions/13516396/how-to-update-source-option-in-bootstrap-typeahead-js) –

答えて

22

あなたが示さhereとして関連するデータフィールドを更新する必要があります。新しいバージョンのライブラリで問題になる可能性があります。私にとっては、データ( '先読み')は定義されておらず、代わりにデータ( 'ttTypeahead')とデータ( 'ttAttrs')があります。どちらもソース属性を持っていません。

いくつかのコードの読み取り後、私はこの思い付いた: $('selector').data('ttTypeahead').dropdown.datasets[0].source = mySourceFunction

そして、動作するようです。ただし、複数のデータセットが定義されている場合があります。

+0

これは間違いなく、https://github.com/twitter/bootstrap/issues/でこれを見つけました1997#issuecomment-4011687 –

+0

はい、それは私が見つけた同じリンクです: –

+10

私は取得しています未定義のプロパティ 'ソース'を設定できません –

1

残念ながら、受け入れ答えは私のために動作しませんでした:

+1

これはツイッターtypeahead 0.11.1で動作しません – user1279887

5

Bootstrap-3-Typeaheadライブラリを使用している場合、これらの回答は私には役に立たなかった。 // stackoverflowの:[ブートストラップ・typeahead.jsソースオプションの更新方法]を(HTTPの

$(".typeahead").typeahead("destroy"); 
    $(".typeahead").typeahead({ source: result }); 
+0

残念なことに、これはイベントoを破壊する効果もあります。その要素は... – skirato

+0

です。ソースと一緒にそれらを適用する必要があります。 –

+0

使用しているイベントハンドラを手動でアンバインドしてください。 'typeahead:close')を呼び出します。このメソッドはこれらのハンドラをアンバインドしないので、破棄して再構築するたびに、パフォーマンスの低下や追加が続けられます。 – Joel

関連する問題