2

私は最後のツイッターのタイプアヘッドを使用しています。

var suggestions = new Bloodhound({
        datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); },
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: {url:'/xxx?text=%QUERY',
            ajax:{
                type : 'post',
                dataType : 'json'
            }
        }
    });
    suggestions.initialize();

    $('.typeahead').typeahead(null, {
        displayKey: 'id',
        source: suggestions.ttAdapter(),
        templates: {
            empty: '<p style="width:50%;margin:auto;">No result</p>',
            suggestion: function(object){
                    var str = ['<p>',
                        object.id,
                        '</p><a class="btn btn-info btn-small" href="item.html?id="',
                        object.id,
                        '>Open</a>'].join('');

                    return str;
                }
        }
    });

問題は、タイプのオブジェクトを5つ受け取ることです

{
id: 0,
field: '', 
value: ''
}

5 つのオブジェクトはすべて同じ ID を持っているため、1 つの結果のフィールドであり、1つの提案に入れる必要があります。Typeahead はそれらを私が望まない個別の提案として扱います。

ajax 呼び出しの結果をマッピングして変換し、結果を先行入力に渡すにはどうすればよいですか?

4

1 に答える 1

1

filter(parsedResponse)を使用して、応答の解析を自分で行うことができます。ここで(無関係な回答への)例を見ることができます。

于 2014-03-03T09:37:52.043 に答える