在Selectize中为下拉建议远程加载数据

我有一个文本输入,我已选择作为标签工作正常。 我可以创建新项目并正确显示它们。

我想在下拉菜单中远程加载数据,以便像谷歌一样提出建议。 我按照文档进行了操作,但是ajax返回的json没有显示在下拉列表中。 ajax调用成功,因为我的控制台显示返回的json:

["New York", "New Jersey", "New Mexico", "New Hampshire"] 

下拉列表中只有:“添加新… ”。

这是我的代码选择:

  $(function() { $('.offerInput').selectize ({ delimiter: '♥', plugins: ['remove_button'], valueField: 'value', labelField: 'value', searchField: 'value', openOnFocus: true, options: [], create: function(input) { return { value: input, text: input } }, render: { option: function (item, escape) { console.log(item); return '
' + escape(item.value) + '
'; } }, load: function (query, callback) { if (!query.length) return callback(); $.ajax({ url: '/as/' + query, type: 'GET', dataType: 'json', error: function () { callback(); }, success: function (res) { console.log(res); callback(res); } }); } }) });

这是我的输入字段:

  

任何想法都错了吗? 谢谢你的帮助!

您的服务返回的问题["New York", "New Jersey", "New Mexico", "New Hampshire"]

但是你的render函数正在搜索一个value属性:

 render: { option: function (item, escape) { console.log(item); return '
' + escape(item.value) + '
'; } }

您应该将服务更改为返回值:

[{"value":"New York"},{"value":"New Jersey"},{"value":"New Mexico"},{"value":"New Hampshire"}]

或者更改渲染以使用该项:

return '

' + escape(item) + '

';