我有一个应用程序,允许用户搜索图稿并构建自己的投资组合。我想表明在algolia搜索中返回的一件艺术品是否包含在用户组合中,但是一旦结果显示给用户,我似乎无法找到回调的方法
可以在搜索结果中添加回调吗?
答案 0 :(得分:3)
我想您使用instantsearch.js library来显示结果。
然后有两种方法可以达到你想要的效果。
1)使用hits
widget
string file = @"C:\Users\MyPC\Pictures\Example\50.jpg";
string webAddress = @"http://mywebsite.com/api/images/products/1?ws_key=NUZSHHQ1X456IJQDPXY3GUXG2C6AMAV3";
var client = new HttpClient();
var pairs = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("image", file)
};
var content = new FormUrlEncodedContent(pairs);
MessageBox.Show( client.PostAsync(webAddress, content).Result.ReasonPhrase );
参数
该参数需要回调并在那里传递结果。因此,您可以在显示结果之前修改结果 - 您可以根据记录是否应突出显示来添加新参数。
示例:
transformData
2)使用custom widget挂钩渲染回调
您可以编写一个简单的自定义窗口小部件,只指定search.addWidget(
instantsearch.widgets.hits({
container: '#hits-container',
templates: {
item: itemTemplate
},
transformData: {
allItems: function (results) {
console.log(results);
// Modify results
return results;
}
}
})
);
选项:
render
在search.addWidget({
render: function(data) {
console.log(data);
}
});
参数中,您将获得有关搜索的所有信息,包括帮助,最后状态和最新结果。
你可以看到两种方法都存在于小jsFiddle中:https://jsfiddle.net/JanPetr/g54hzrzp/