我正在为我的项目使用Freebase Search Widget,使用它我可以从输入框中的建议列表中选择单词,但是如何在另一个文本框中获得类别?
示例:http://suggest-examples.freebaseapps.com/
如果我输入:James Cameron,它将在文本框中选择,但是我也希望在另一个文本框中选择类别?
码:
$(function() {
$("#myinput").suggest({
key: "YOUR-API-KEY-GOES-HERE",
filter:'(all type:/film/director)'
});
});
最佳答案
Freebase Search widget使用Freebase Search API来建议实体。因此,当您在输入字段中输入“ james cameron”时,您将发送以下Search API请求:
https://www.googleapis.com/freebase/v1/search?query=james+cameron&exact=false&prefixed=true
您可以从该API调用的响应中看到,它传回了名称,ID,排名以及该实体值得注意的地方:
{
"mid": "/m/03_gd",
"id": "/en/james_cameron",
"name": "James Cameron",
"notable": {
"name": "Film Director",
"id": "/m/02jknp"
},
"lang": "en",
"score": 629.205872
},...
所有这些数据都可以通过Search小部件中的jQuery回调进行访问,如下所示:
$(function() {
$("#myinput").suggest({
key: "YOUR-API-KEY-GOES-HERE",
filter:'(all type:/film/director)'
}).bind("fb-select", function(e, data) {
alert(data.name + ", " + data.id + " (" + data.notable.name + ")");
});
});
在这种情况下,詹姆斯·卡梅隆(/m/03_gd)以电影导演(/m/02jknp)着称。
关于javascript - 如何在freebase搜索小部件中选择类别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15716400/