【问题标题】:Typeahead not displaying results with remote dataTypeahead 不显示远程数据的结果
【发布时间】:2016-03-29 20:57:51
【问题描述】:

Typeahead 不显示建议。这是一个非常简单的城市查询。数据库返回正常。控制台正在记录我的输入。就是无法显示返回数据。

    remote data
{"recID":"3699","Name":"Dupage","City":"West Chicago","Country":"United States"}


html
<input class="typeahead" type="text" placeholder="Enter City" size="32">


script
<script type="text/javascript">         
var cities = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('City'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: 'getAirports.php',
  remote: {
    url: 'getAirports.php?query=%QUERY',
    wildcard: '%QUERY'
  }
}); 

$('.typeahead').typeahead({
  hint: true,
  highlight: true,
  minLength: 1
}, {
  name: 'City',
  display: 'City',
  source: cities,
  templates: {
    suggestion: function (data) {
        return  data.City;
    }
}

}); 
         </script>  

【问题讨论】:

  • 如果删除预取会发生什么?
  • 同样的结果。我也将 ?query= ("getAirports.php?query=") 添加到预取的末尾。仍然没有数据返回。可能是因为数组是键值。一直在到处寻找解决方案。

标签: jquery typeahead bloodhound


【解决方案1】:

远程数据格式不正确。它不是有效的 JSON 对象。它也不是一个有效的 JavaScript 数组。你也许可以让它工作,但它需要你解析返回的数据来创建一个对象或数组。

如果您的数据作为对象返回:{recID:"3699", Name:"Dupage", City:"West Chicago", Country:"United States"},那么它应该可以工作。现在你正试图引用一个不存在的对象data.City

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多