Как обновить исходный вариант в bootstrap-typeahead.js

Я использую bootstrap-typeahead, чтобы разрешить множественный выбор. Вот демонстрация.

Исходный код был обновлен @Sherbrow Twitter bootstrap typeahead с несколькими значениями

Мой вопрос связан со следующим вариантом использования:
после вставки значения Alaska я хотел бы обновить источник, чтобы он больше не отображал значение Alaska.
Есть подсказки?


person Lorraine Bernard    schedule 22.11.2012    source источник


Ответы (3)


У меня была такая же проблема, и это сэкономит вам много времени. Я обновил ваш старый jsFiddle своим примером кода. Главное, что вам нужно сделать

var autocomplete = $('input').typeahead();
autocomplete.data('typeahead').source = newSource;

Где newSource — новый массив. Теперь вам просто нужна функция, которая добавляет или удаляет элемент или что-то еще, что вам нужно с ним делать.

person toxicate20    schedule 22.11.2012
comment
Примечание!! Вы также можете сделать это для обновления. ` var newUpdater = function(item) {} autocomplete.data('typeahead').updater = newUpdater; ` Ты молодец, я работал над этим несколько дней!! - person user2847749; 17.09.2014

Ни один из приведенных ответов не сработал для меня, мне пришлось уничтожить исходный экземпляр typeahead и повторно инициализировать его.

$('input').typeahead('destroy').typeahead(options);

person micahblu    schedule 19.05.2016
comment
Да, у меня тоже работает только один. Использование typeahead.js 0.10.5. - person wanaryytel; 14.07.2016
comment
Я использую typeahead.js 0.11.1 (комплект), и он у меня не работает :-( - person ItayB; 01.06.2019

На основе метода updater по умолчанию для typeahead:

updater: function (item) {
  var pos = this.source.indexOf(item);
  if(pos != -1) {
    var newSource =
      this.source.slice(0,pos)
      .concat(this.source.slice(pos+1));
    this.source = newSource;
  }
  return item
}

Демонстрация с несколькими значениями (jsfiddle)

Имейте в виду, что вы можете получить доступ к этому источнику откуда с помощью $('sel').data('typeahead').source, учитывая, что ввод инициализирован.

person Sherbrow    schedule 22.11.2012