/ / bootstrap typeahead - mudando a fonte - jquery, twitter-bootstrap, bootstrap-typeahead

tipeahead de bootstrap - mudando a fonte - jquery, twitter-bootstrap, bootstrap-typeahead

Eu estou procurando uma maneira de mudar source para tipeahed.

Por exemplo, suponha que eu tenha as 2 listas a seguir e, dependendo do caso, gostaria de ter o typeahead funcionando com uma fonte diferente.

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

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

Então, quando eu faço

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

e comece a digitar na caixa de entrada, a primeira lista aparece embaixo da nova.

Eu tentei fazer

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

No entanto, isso não tem efeito.

Respostas:

23 para resposta № 1

Você precisa atualizar o campo de dados associado conforme indicado Aqui :

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

5 para resposta № 2

Nenhuma dessas respostas funcionou para mim ao usar o Bootstrap-3-Typeahead biblioteca. Consegui atualizar a fonte destruindo o cabeçalho inicializado e reinicializando-a com uma nova fonte:

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

1 para resposta № 3

Infelizmente, a resposta aceita não funcionoupara mim. Pode ser um problema com versões mais recentes da biblioteca. Para mim, os dados ("typeahead") não estão definidos - em vez disso, há dados ("ttTypeahead") e dados ("ttAttrs"). Nenhum deles tem um atributo de origem.

Depois de algum código de leitura, descobri o seguinte: $("selector").data("ttTypeahead").dropdown.datasets[0].source = mySourceFunction

E parece que funciona. Pode haver instâncias em que mais de um conjunto de dados é definido.