我正在通过此处给出的示例来学习 Bloodhound: https://twitter.github.io/typeahead.js/examples/#scrollable-dropdown-menu .
当我从 Github 上的国家/地区示例 JSON 文件中预取时,它工作正常。
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
// `states` is an array of state names defined in "The Basics"
prefetch: 'https://raw.githubusercontent.com/twitter/typeahead.js/gh-
pages/data/countries.json'
});
但是,当我在本地保存 JSON 时,它会停止工作。
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: 'file:///C:/Users/nicho/workspace/TypeAhead/Countries.json'
});
当我将保存的 JSON 的链接放入浏览器时,它显示的内容与 Github 上的 JSON 文件相同。
为什么 Bloodhound 无法读取我的本地 JSON 文件?
最佳答案
给它一个像这样的相对路径:
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: 'Countries.json'
});
或者据我了解您的问题,它使用的是已经下载的 states.json 版本。您应该清除缓存并清除本地存储(localStorage.clear())。或者你可以添加cache: false,如下所示:
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "countries.json",
cache: false
}
});
关于javascript - Bloodhound,预取保存在我的文件中的 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153353/