Twitter Typeahead:未定义

时间:2014-11-23 19:38:35

标签: javascript jquery json twitter typeahead.js

我有一个包含数据的.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)获得了相同的数据,而不是单独的方法。

Current code

Example JSON

1 个答案:

答案 0 :(得分:1)

typeAhead中的建议应该是对象而不是普通字符串。

您已设置typeAhead以显示对象的“value”属性

displayKey: 'value'

解决此问题的最简单方法是将源字符串包装到JavaScript对象中。

像这样:

stationsnamen.push({value: val['Namen'].Lang.toString() });
相关问题