Подтвердить что ты не робот

Твиттер Typeahead с шаблоном всегда возвращает только 1 строку данных

Я пытаюсь сделать аналогичный пример, как то, что Twitter показывает на странице примеров, а точнее, с шаблоном с именем Open Source Projects by Twitter, и я получил что-то частично работает, но оно только и всегда показывает только 1 строку результата, хотя я установил его равным 10, я потянул данные Yahoo Finance, и результатом является JSON и действителен внутри Firebug, например, набрав букву "a", вы получите аналогичный JSON Объект: [Object { symbol="A", name="Agilent Technologies Inc.", exch="NYQ", more...}, Object { symbol="^DJI", name="Dow Jones Industrial Average", exch="DJI", more...}, more objects...]

Мой JS файл имеет эту настройку типа

$('.symbols .typeahead').typeahead({
    //name: 'symbols',
    //remote: 'yahoo_autocomplete_ajax.php?action=autocjson&symbol=%QUERY',
    limit: 3,
    remote: {
        url: 'yahoo_autocomplete_ajax.php?action=autocjson&symbol=%QUERY',
        filter: function(parsedResponse) {
            var dataset = [];

            dataset = parsedResponse.data;
            console.log(parsedResponse.data);
            console.log(dataset); // debug the response here

            return dataset;
        }
    },
    //prefetch: 'symbols.json',
    template: [
        '<p class="symbols-exchange">{{exchDisp}}</p>',
        '<p class="symbols-symbol">{{symbol}}</p>',
        '<p class="symbols-name">{{name}}</p>'
    ].join(''),
    engine: Hogan
});

С помощью console.log как parsedReponse.data, так и dataset отображаются как действительный массив. но в конце он все еще всегда показывает первый результат независимо от того, что и шаблон работает, как это должно быть, теперь, в моем HTML-коде, у меня есть примеры из Twitter, и он всегда показывает все результаты, но мой только 1.. так почему? Если нужно, я могу также опубликовать свой HTML-код, я просто пытаюсь сделать пример, поэтому HTML все еще прост

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

Вот часть моего HTML-кода

<form>
        <div class="example symbols">
            <h2 class="example-name">Symbols</h2>
            <p class="example-description">Defines a custom template and template engine for rendering suggestions</p>

            <div class="demo">
                <input class="typeahead" type="text" placeholder="symbol">
            </div>
        </div>
    </form>
4b9b3361

Ответ 1

После нескольких дней работы над этим после рабочего времени я наконец нашел это... Я забыл одну мелочь, которая теперь отвечает на мои обе проблемы. Я забыл этот маленький кусок кода в моем JS: valueKey: 'symbol' и voila!!! Вот почему я не мог видеть ничего на входе даже после того, как я отобрал единственную строку, которая показывала (моя проблема № 2), а также почему она показывала только 1 строку предложения. Теперь для более чистого кода я придумал следующее:

$('.symbols .typeahead').typeahead({
    limit: 5,
    valueKey: 'symbol',
    remote: {
        url: 'yahoo_autocomplete_ajax.php?action=autocjson&symbol=%QUERY',
        filter: function(parsedResponse) {
            return parsedResponse.data;
        }
    },
    template: [
        '<p class="symbols-exchange">{{exchDisp}}</p>',
        '<p class="symbols-symbol">{{symbol}}</p>',
        '<p class="symbols-name">{{name}}</p>'
    ].join(''),
    engine: Hogan
});