【发布时间】:2015-05-19 18:35:50
【问题描述】:
我在 datumTokenizer 函数中设置了一个断点,但它似乎从未被调用过。为什么不?它是否适用于仅远程数据?
var engine = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.obj.whitespace(d);
},
queryTokenizer: Bloodhound.tokenizers.nonword,
identify: function( obj ) { return obj.id; },
remote: {
url: '/typeahead/%QUERY',
wildcard: '%QUERY'
},
limit: 5
});
$( '#city_or_zip' ).typeahead({
hint: true,
minLength: 2
}, {
display: function( data ) {
return formatCityState( data );
},
source: engine.ttAdapter(),
templates: {
empty: 'No results found',
suggestion: function ( data ) {
return '<p>' + formatCityState( data ) + '</p>';
}
}
});
从远程返回的 JSON:
[
{
"id":568,
"state":"al",
"city":"pittsview"
},
{
"id":4095,
"state":"ga",
"city":"pitts"
}
]
【问题讨论】:
-
这里返回 Bloodhound.tokenizers.obj.whitespace(d);你的 insteaf 传递字符串值 Bloodhound.tokenizers.obj.whitespace("name")
-
虽然它甚至没有命中那个代码。 datumTokenizer 函数中没有任何内容被调用。
-
@StephenHorvath 你有没有远程工作?