Я использую typeahead (0.10.1) в приложении, чтобы вернуть список клиентов, используя предварительную выборку ищейки. Я не могу понять, как обновить/переинициализировать ищейку с помощью нового отпечатка пальца, чтобы после того, как новый клиент вставлен, он будет использовать новый отпечаток и, следовательно, включить нового клиента.Невозможно обновить twitter typeahead.js prefetch thumbprint после начальной загрузки
Система Аякса, так что я не могу просто изменить имя на обновления, я пытаюсь передать его другой отпечаток, как на ниже в reinitializeclient(), но это не работает:
var clientthumbprint = "initialname";
var clients = new Bloodhound({
limit: 5,
prefetch:{
url: '/urltofeed/',
thumbprint:getthumbprint()
},
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.label);
},
queryTokenizer: Bloodhound.tokenizers.whitespace
});
clients.initialize();
function reinitializeclient(newthumbprint){
//This is called when a client is saved
clientthumbprint = newthumprint;
clients.initialize(); //this didn't work
}
function getthumbprint(){
return clientthumbprint;
}
$('#search_user').typeahead({
minLength: 2,
},
{
displayKey: 'label',
source: clients.ttAdapter()
})
Любой есть идеи, что я делаю неправильно?
EDIT: После обновления моих машинописные файлов с помощью запроса тянущего упоминаемого @jharding, я могу получить его, чтобы сбросить, но не reinitialise.Using следующего:
function initialize_clients(){
clients = new Bloodhound({
limit: 5,
prefetch:{
url: '/pathtojson/',
thumbprint:getthumbprint()
},
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.label);
},
queryTokenizer: Bloodhound.tokenizers.whitespace
});
clients.initialize();
};
function resetclients(){
clientthumbprint = 'somenewthumbprint';
clients.reset();//this works - after running nothing will return in search
initialize_clients();//this is not working
}
function getthumbprint(){
return clientthumbprint;
}
Вы не можете переинициализировать ищеек прямо сейчас, но эта способность будет существовать в v0. 10,2. Вот связанный запрос на тягу: https://github.com/twitter/typeahead.js/pull/703 – jharding
Отлично! Я схватил этот запрос на растяжение и обновил свои файлы с помощью ворчания в качестве теста. Я могу получить его для сброса, но я, похоже, не могу его повторно инициализировать: – MrTomTom
Попробуйте передать «true» в метод initialize при повторной инициализации. Я все еще работаю над тем, что я хочу, чтобы API был, если у вас есть какие-то мысли, вы должны опубликовать их по запросу pull. – jharding