错误 - 缺少字符串 - jQuery Typeahead

时间:2017-10-12 08:06:44

标签: javascript jquery typeahead

我正在使用jQuery Typeahead plugin,但如果我尝试设置初始数据,则会发生错误,输入值为false

这是我的配置:

var typeaheadOptions = {
        dynamic: true,
        display: ['title'],
        template: '<span>{{title}}</span>',
        cache: true,
        debug: true,
        multiselect: {
            matchOn: ['id'],
            data: [{title: 'title1'}, {title: 'title2'}],
            callback: {
                onCancel: function(node, item) {removeItem(item)}
            }
        },
        source: {
            posts: {
                ajax: {
                    method: 'GET',
                    url: remoteURL,
                    data: {search: '{{query}}'}
                }
            }
        },
        callback: {
            onClick: function(node, a, item) {addItem(item)}
        }
    };

这是错误:

ERROR - Missing string": {
  arguments: "",
  function: "helper.namespace()",
  message: "ERROR - Missing string",
  node: "#media-kit-post"
}

这就是它的样子:

Wrong item title

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案并希望与大家分享:

初始data数组中的项目需要一个额外的键值对:matchedKey: 'title'

所以这是我的工作options对象:

var typeaheadOptions = {
        dynamic: true,
        display: ['title'],
        template: '<span>{{title}}</span>',
        cache: true,
        debug: true,
        multiselect: {
            matchOn: ['id'],
            data: [{title: 'title1', matchedKey: 'title'}, {title: 'title2', matchedKey: 'title'}],
            callback: {
                onCancel: function(node, item) {removeItem(item)}
            }
        },
        source: {
            posts: {
                ajax: {
                    method: 'GET',
                    url: remoteURL,
                    data: {search: '{{query}}'}
                }
            }
        },
        callback: {
            onClick: function(node, a, item) {addItem(item)}
        }
    };

附加键值对确实在typeahead documentationmultiselect的示例中,但未在周围文字中进行描述。