Javascript TwitterTypeahead 0.9.3远程返回URL和json对象
在bootstrap 2中,我使用以下代码发布了一个json对象Javascript TwitterTypeahead 0.9.3远程返回URL和json对象,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,bootstrap-typeahead,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,Bootstrap Typeahead,在bootstrap 2中,我使用以下代码发布了一个json对象 $('#typeahead').typeahead({ source: function (query, process) { var URL = 'http://localhost:8080/autocomplete/search/'; var query = {"t:jsonStringField": { "name": "
$('#typeahead').typeahead({
source: function (query, process) {
var URL = 'http://localhost:8080/autocomplete/search/';
var query = {"t:jsonStringField": {
"name": "model",
"value": "fusion"
},
"t:jsonStringFilter": [
{"name": "year","value": "2009"},
{"name": "make","value": "ford"}
]
};
return $.getJSON(URL,
{ query: JSON.stringify(query)},
function (data) {
return process(data);
});
}
});
现在在TwitterTyeahead 0.9.3中,他们已经放弃了源代码概念,转而使用远程概念,但不幸的是,我不知道如何使用它
$(".typeahead").typeahead({
remote : {
url: 'http://localhost:8080/autocomplete/search/',
replace: function(uri, query) {
var query = {"t:jsonStringField": {
"name": "model",
"value": "fusion"
},
"t:jsonStringFilter": [
{"name": "year","value": "2009"},
{"name": "make","value": "ford"}
]
};
return uri + JSON.stringify(query);
},
filter: function(response) {
return response.matches;
}
return process(resultList);
}
}
不幸的是,它不起作用,我如何只发布JSON对象而不是将其附加到字符串中?谢谢 在原始代码中使用$.getJSON。这将发送一个请求(并期望json作为结果)收件人:
http://localhost:8080/autocomplete/search/?query=%7B%22t%3AjsonStringField%22%3A%7B%22name%22%3A%22model%22%2C%22value%22%3A%22fusion%22%7D%2C%22t%3AjsonStringFilter%22%3A%5B%7B%22name%22%3A%22year%22%2C%22value%22%3A%222009%22%7D%2C%7B%22name%22%3A%22make%22%2C%22value%22%3A%22ford%22%7D%5D%7D
要对Twitter的Typeahead调用执行同样的操作,远程数据的replace函数应该返回一个有效的url。在函数中,url的?query=
部分缺失
您必须设置:url:'http://localhost:8080/autocomplete/search/?query=“,
您还必须对json输入进行URL编码
注意:您不需要行返回过程(resultList)
您必须使用filter函数将json结果转换为有效数据:
构成数据集的单个单元称为基准。这个
基准的标准形式是具有值属性和
代币财产
您可以使用模板设置下拉结果的样式,请参见:
默认情况下,typeahead.js创建的下拉菜单将显示
丑陋的,你会想样式,以确保它符合主题的
你的网页
您将需要从样式表中添加额外的CSS来设置引导的默认下拉列表。考虑使用:这并不能回答我当前的问题,但无论如何我必须询问。此功能是否与旧功能一样有效?是否与bootstrap 3配合良好?是的,它将与bootstrap 3配合使用,您可以使用“旧”调用/code@BassJobsen因此,尽管我能够使用urlEncoded json对象使版本0.9.3正常工作,但实际上我切换到了您的bootstrap-3-typeahead fork。我对0.9.3提供的功能的缺乏感到不满意,比如自动选择第一个项目和进行编程搜索的能力。谢谢你的图书馆。