我一直在使用twitter typeahead很长一段时间,这对我的远程数据来说非常简单方便。现在我决定升级到最新版本(typeahead.js 0.10.5),这样我就可以使用强大的猎犬引擎了。我对猎犬有一些问题,下面是我直接从https://twitter.github.io/typeahead.js/examples/预取示例中使用的代码,无论如何代码似乎都不起作用。
我认为我呼叫的url
是正确的,因为链接对我来说很好,我看到了所有国家/地区。我唯一更改的是prefetch
到remote
,它也不适用于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>