2

我正在使用最后一个 twitter typeahead。

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,因此是一个结果的字段,应该放在一个建议中。Typeahead 将它们视为我不想要的单独建议

如何映射 ajax 调用的结果,对其进行转换并将结果传递回 typeahead?

4

1 回答 1

1

您可以使用filter(parsedResponse)自己解析响应。你可以在这里看到一个例子(一个不相关的答案)。

于 2014-03-03T09:37:52.043 回答