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 № 1Você 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.