typeahead不使用看似相同的JSON结构,但数据不同

时间:2015-03-06 19:50:22

标签: jquery typeahead

我不知道为什么,但我有typeahead.js并使用它的例子它完美地工作。但是,如果我更改看起来相同的数据,它就不起作用。我不明白为什么:

var jdata_1 = [{
"urRouteName": "Test Route Name"
}, {
"urRouteName": "Beesmore Road"
}];
var jdata = [{
"val": "Alabama"
}, {
"val": "Alaska"
}, {
"val": "Arizona"
}, {
"val": "Arkansas"
}];


var routeName = new Bloodhound({
datumTokenizer: function (d) {
    return Bloodhound.tokenizers.whitespace(d.val);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: jdata_1
});

routeName.initialize();

$('#routeName').typeahead({
highlight: true
}, {
displayKey: 'urRouteName',
//displayKey: 'val',
source: routeName.ttAdapter()
});

使用' jdata'与displaykey' val'是一种享受。

但是使用' data_1'使用displaykey' urRouteName'失败,但没有错误。

不知道为什么?

jsfiddle

1 个答案:

答案 0 :(得分:1)

您忘了更新datumTokenizer

datumTokenizer: function (d) {
   return Bloodhound.tokenizers.whitespace(d.urRouteName);
}

这是一个友好的Demo