Typeahead.js Bloodhound - Объект не имеет разделения методов

Я пытаюсь заставить Bloodhound работать.

Код у меня есть:

var licenses = new Bloodhound({
        datumTokenizer: function(d) {
            return Bloodhound.tokenizers.whitespace(d.value);
        },
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        local: [{ "value": 1 , "text": "A"}, { "value": 2 , "text": "C+E"}]
    });

licenses.initialize();

выдает ошибку

Объект 1 не имеет метода split

Что не так в этом коде?


person user1049961    schedule 01.04.2014    source источник
comment
github.com/twitter/typeahead.js/issues/740   -  person Tushar Gupta - curioustushar    schedule 01.04.2014
comment
Я видел это, но мне нужна комбинация значения/текста, чтобы иметь возможность отображать и сохранять разные значения.   -  person user1049961    schedule 01.04.2014


Ответы (1)


Если вы хотите использовать число в качестве условия поиска, вы должны преобразовать его в строку, например:

$(document).ready(function () {
    var numbers;

    numbers = new Bloodhound({
        datumTokenizer: function (d) {
            return Bloodhound.tokenizers.whitespace(d.value.toString());
        },
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        local: [{ "value": 1 , "text": "A"}, { "value": 2 , "text": "C+E"}]
    });

    numbers.initialize();

    $('.typeahead').typeahead(null, {
        displayKey: 'value',
        source: numbers.ttAdapter()
    });

});

Демонстрация: http://jsfiddle.net/IrvinDominin/6HSMA/

person Irvin Dominin    schedule 01.04.2014