我正在使用我的MVC应用程序实现最新版本的typeahead。情况是,我得到了json结果,这很好并且经过验证。
在typeahead的返回部分,我发出警报,我可以看到所有返回的结果都在那里。但是在显示方面,没有任何东西被展示出来。控制台中也没有错误消息。 XHR完全没问题。
坦率地说,我不知道为什么会这样?你能不能提出任何想法......谢谢你提前使用的Typeahead版本:0.11.1
以下是我的代码..
<div class="tt-container">
<input id="customer" name="customer" type="text" value="" class="form-control" required />
</div>
预先声明
var customers = new Bloodhound({
datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.value); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/api/customer?query=%QUERY',
wildcard: '%QUERY',
filter: function(customers) {
//debugger;
return $.map(customers,function(user) {
//debugger;
alert(user.customerName);
return {
value: user.customerName
};
});
}
},
ajax: {
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
beforeSend: function(jqXhr, settings) {
var authHeaders;
// pull apart jqXHR, set authHeaders to what it should be
//debugger;
jqXhr.setRequestHeader('Access-Control-Allow-Origin', '*');
}
}
});
customers.initialize();
$('#customer').typeahead({
minLength: 3,
highlight: true
},
{
name: 'customers',
displayKey: 'value',
source: customers.ttAdapter()
});
答案 0 :(得分:0)
我在这个问题上挖掘,发现typeahead几乎没有解决的问题,这就是其中之一。所以我决定使用jquery autocomplete,它具有typeahead的所有功能。