我正在尝试将预先输入的远程源设为 Web 方法,该方法将以 JSON 格式的结果响应。
Ajax 正在取得成功,它正在正确地返回结果。下面代码中的控制台将打印如下
[{"Id":"1","Value":"Midhun"},{"Id":"2","Value":"Midhun2"}]
但是预先输入的建议都是未定义的
var typeHeadEngine = new Bloodhound({ name: 'Name', remote: { url: 'page.aspx/method',
ajax: { type: "POST", data: JSON.stringify({ "query": '%QUERY' }), contentType: "application/json; charset=utf-8", dataType: "text", success: function (data) { var obj = JSON.parse(data); console.log(obj.d); return obj.d; } } }, datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.val); }, queryTokenizer: Bloodhound.tokenizers.whitespace }); typeHeadEngine .initialize(); $('.typeahead').typeahead({ hint: true, highlight: true,
minLength: 3 }, { name: 'Name', displayKey: 'Value', source: typeHeadEngine.ttAdapter()
});
Web 方法正在返回 JSON 字符串,该字符串在 ajax 成功函数中转换为数组。在谷歌搜索期间,我发现 typeahead 需要数组而不是 JSON 对象,所以我正在转换为数组。
我经历了很多类似的问题来弄清楚。但我无法这样做,
任何人都可以帮忙找出我在这里做错了什么吗?