我有一个包含数据的.json文件,我想在.json文件中使用Twitter的typeahead来获取火车站的位置。 (见我的jsFiddle) 当我使用当前代码时,我遇到了错误。在显示时,当我开始输入时,来自typeahead的结果对于每条记录都是“未定义的”。
问题出在源方法中:
source: function(query, process){
$.getJSON("../data/stations.json", function(data){
$.each(data.Stations.Station, function(key,val){
if(val.Land == "NL"){
stationsnamen.push(val['Namen'].Lang.toString());
stationsdata.push(new Array(val.Lat, val.Lon, val['Namen'].Lang.toString()));
}
});
});
process(stationsnamen);
}
我似乎无法找到它返回“未定义”的原因,因为上面第一行到最后一行代码中的process(array)
获得了相同的数据,而不是单独的方法。
答案 0 :(得分:1)
typeAhead中的建议应该是对象而不是普通字符串。
您已设置typeAhead以显示对象的“value”属性
displayKey: 'value'
解决此问题的最简单方法是将源字符串包装到JavaScript对象中。
像这样:
stationsnamen.push({value: val['Namen'].Lang.toString() });