【发布时间】:2014-02-26 00:28:42
【问题描述】:
我在 JS 中有这段代码,效果很好。
var values = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: '/url/that/returns/json'
});
但是,由于我只需要一次,所以我将其更改为预取,如下所示:
var values = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {url: '/url/that/returns/json'}
});
这会在 typeahead.js 中导致错误(“TypeError: a is undefined”)。我需要进行哪些更改才能使此功能正常工作?
编辑:如果我在浏览器中访问 URL,返回的 json 是:
[{"name":"MyName","id":"100","code":"CODE"}]
【问题讨论】:
-
也许您的端点没有返回有效的 JSON。模拟 AJAX 请求,我能够得到一个工作示例:jsfiddle.net/2Cres/5
-
@BrandonBoone 我粘贴了我的 URL 返回的 json。看一看。
-
@BrandonBoone 使用您的链接,我能够诊断出问题。非常感谢。
标签: javascript typeahead.js twitter-typeahead bloodhound