【问题标题】:Bloodhound, prefetching a json file saved in my filesBloodhound,预取保存在我的文件中的 json 文件
【发布时间】:2017-07-17 20:43:39
【问题描述】:

我通过这里给出的例子来学习猎犬: 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 文件?

【问题讨论】:

    标签: javascript json bloodhound


    【解决方案1】:

    给它一个像这样的相对路径:

    var countries = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.whitespace,
        queryTokenizer: Bloodhound.tokenizers.whitespace,
    
        prefetch: 'Countries.json'    
    });
    

    或者据我了解您的问题是使用已下载的国家/地区.json 版本。您应该清除缓存并清除本地存储 (localStorage.clear())。或者你可以添加cache: false,像这样:

    var countries = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.whitespace,
        queryTokenizer: Bloodhound.tokenizers.whitespace,
    
        prefetch: {
            url: "countries.json",
            cache: false
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 2022-01-16
      • 2020-04-19
      • 2019-09-15
      相关资源
      最近更新 更多