【问题标题】:Twitter Typeahead: undefinedTwitter Typeahead:未定义
【发布时间】:2015-01-21 11:46:03
【问题描述】:

我有一个包含数据的 .json 文件,我想在 .json 文件中使用 Twitter 的 typeahead 来获取火车站的位置。 (见我的jsFiddle) 当我使用当前代码时,我遇到了错误。在显示器上,当我开始输入时,预输入的结果对于每条记录都是“未定义的”。

问题出在源方法中:

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

【问题讨论】:

  • 显示电台数据的样子。调用“../data/stations.json”时返回的内容。
  • 我添加了一个带有示例 JSON 的 jsFiddle

标签: javascript jquery json twitter typeahead.js


【解决方案1】:

typeAhead 中的建议应该是一个对象而不是纯字符串。

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

displayKey: 'value'

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

像这样:

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

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多