根据twitter-typeahead示例,twitter Bloodhound引擎无法正常工作

时间:2015-04-22 16:48:35

标签: twitter-bootstrap twitter twitter-typeahead bloodhound

我一直在使用twitter typeahead很长一段时间,这对我的远程数据来说非常简单方便。现在我决定升级到最新版本(typeahead.js 0.10.5),这样我就可以使用强大的猎犬引擎了。我对猎犬有一些问题,下面是我直接从https://twitter.github.io/typeahead.js/examples/预取示例中使用的代码,无论如何代码似乎都不起作用。

我认为我呼叫的url是正确的,因为链接对我来说很好,我看到了所有国家/地区。我唯一更改的是prefetchremote,它也不适用于prefetch。我还尝试了stackexchange here上的其他示例,它们建议我正确地在标题中调用我的脚本,但是当我将url更改为twitter提供的url时它不起作用。我想知道我是否正在使用我从twitter-typeahead示例中正确复制的代码。

    <div id="prefetch">
      <input class="typeahead" type="text" placeholder="Countries">
    </div>
<script type='text/javascript'>
$(function() {
   var countries = new Bloodhound({
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),       
      queryTokenizer: Bloodhound.tokenizers.whitespace,
      limit: 10,
      remote: {
        // url points to a json file that contains an array of country names, see
        // https://github.com/twitter/typeahead.js/blob/gh-pages/data/countries.json
        url: 'https://github.com/twitter/typeahead.js/blob/gh-pages/data/countries.json',
        // the json file contains an array of strings, but the Bloodhound
        // suggestion engine expects JavaScript objects so this converts all of
        // those strings
        filter: function (list) {
          return $.map(list, function (country) { 
            return { 
                name: country 
                }; 
            });
        }
      }
    });

    // kicks off the loading/processing of `local` and `prefetch`
    countries.initialize();

    // passing in `null` for the `options` arguments will result in the default
    // options being used
    $('#prefetch .typeahead').typeahead(null, {
      name: 'countries',
      displayKey: 'name',
      // `ttAdapter` wraps the suggestion engine in an adapter that
      // is compatible with the typeahead jQuery plugin
      source: countries.ttAdapter()
    });
});
</script>

0 个答案:

没有答案