3

我正在使用带有 twitter typeahead 的 tokenfield 进行引导,我能够做到这一点。

http://i.stack.imgur.com/dtFbj.png

我只想显示值。

这是我的 JS:

var engine = new Bloodhound({
        local: bloodhound_tag_data,
        datumTokenizer: function(d) {
            return Bloodhound.tokenizers.whitespace(d.value);
        },
        queryTokenizer: Bloodhound.tokenizers.whitespace
    });
    engine.initialize();
    $('#id_tags').tokenfield({
        typeahead: [null, { source: engine.ttAdapter() }]
    });

'bloodhound_tag_data' 是具有 'id' 和 'value' 键的对象列表。

4

1 回答 1

2

我有同样的问题。在您的代码中尝试替换typeahead: [null, { source: engine.ttAdapter() }]为以下内容:

typeahead: [null, {
   display: 'value',
   source: engine.ttAdapter()
}]

在我观察到与您的屏幕截图非常相似的情况下,这解决了它。

一些背景知识:对于像我这样经验不足的人来说, typeahead.jsdisplay选项的文档似乎有点难以理解。它说(我认为相关的粗体字):

对于给定的建议,确定它的字符串表示。这将在选择建议后设置输入控件的值时使用。可以是键字符串或将建议对象转换为字符串的函数。默认为对建议进行字符串化。

在这种情况下'value',键是数组中元素之一的字段bloodhound_tag_data

快乐编码!

如果我的答案中的任何内容可以改进,请添加具有建设性建议的评论。谢谢!

于 2015-10-05T03:47:30.743 回答