tagsinput & typeahead: невозможно прочитать свойство «применить» неопределенного

Я продолжаю получать эту ошибку при попытке использовать tagsinput & typeahead.

HTML:

<section id="examples">
  <div class="example example_typeahead">
    <h3>Typeahead</h3>
    <div class="bs-example">
      <input class="testing" type="text" value="nope" />
    </div>
  </div>
</section>

JavaScript:

var data = ['yes', 'yesyes', 'no', 'nope', 'yes again'],
  elt = $('.testing');

elt.tagsinput({
  typeahead: {
    source: data
  },
});

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

примечание: я использую этот плагин для typeahead https://github.com/bassjobsen/Bootstrap-3-Typeahead и этот плагин для tagsinput http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/


person yeouuu    schedule 13.02.2016    source источник


Ответы (1)


Я предполагаю, но не уверен, что было сделано обновление bootstrap-tagsinput, которое каким-то образом нарушило способ обработки "старого" типа начальной загрузки. Я нашел две ошибки, но не понял почему.

1-я проблема
Ошибка "Не удается прочитать свойство "применить" для undefined" возникает в typeahead и вызвана тем, что typeahead пытается нацелить неопределенное значение. Проблема также описана здесь. Я сделал запрос на включение для этого (нажми для деталей). Надеюсь, мое предложение будет объединено, если нет, вы можете скачать это разветвленное репо. Теперь запрос на вытягивание объединен с мастером.

2-я проблема
Когда неприятным исключением была история, я заметил, что bootstrap-tagsinput не очищается после того, как выбор сделан в typeahead. Выбор сделан, но вся строка или ее части остаются в поле ввода. Это можно решить с помощью обработчика afterSelect:

$('#someElement').tagsinput({
  typeahead: {
    source: data,
    afterSelect: function() {
       this.$element[0].value = '';
    }
  }
}) 

С этими двумя изменениями bootstrap-tagsinput и boostrap3-typeahead работают должным образом. См. демонстрацию -> http://jsfiddle.net/bao3vk2m/

person davidkonrad    schedule 18.02.2016