Algolia Instantsearch - 在显示结果后添加回调?
Algolia Instantsearch - add a callback after results are displayed?
我有一个应用程序,允许用户搜索艺术品并建立自己的作品集。我想显示在 algolia 搜索中返回的一件艺术品是否包含在用户的投资组合中,但我似乎无法找到一种方法在向用户显示结果后进行回调。
是否可以为搜索结果添加回调?
我想你使用 instantsearch.js library 来显示结果。
那么有两种方法可以达到你想要的效果。
1) 使用transformData
参数hits
widget
参数接受回调并在那里传递结果。因此,您可以在显示结果之前修改结果 - 您可以根据记录是否应该突出显示来添加新参数。
示例:
search.addWidget(
instantsearch.widgets.hits({
container: '#hits-container',
templates: {
item: itemTemplate
},
transformData: {
allItems: function (results) {
console.log(results);
// Modify results
return results;
}
}
})
);
2) 使用custom widget挂钩渲染回调
您可以编写一个简单的自定义小部件,其中您只指定 render
选项:
search.addWidget({
render: function(data) {
console.log(data);
}
});
在 data
参数中,您将获得有关搜索的所有信息,包括助手、最后状态和最新结果。
您可以在小型 jsFiddle 中看到两种方法:https://jsfiddle.net/JanPetr/g54hzrzp/
我有一个应用程序,允许用户搜索艺术品并建立自己的作品集。我想显示在 algolia 搜索中返回的一件艺术品是否包含在用户的投资组合中,但我似乎无法找到一种方法在向用户显示结果后进行回调。
是否可以为搜索结果添加回调?
我想你使用 instantsearch.js library 来显示结果。
那么有两种方法可以达到你想要的效果。
1) 使用transformData
参数hits
widget
参数接受回调并在那里传递结果。因此,您可以在显示结果之前修改结果 - 您可以根据记录是否应该突出显示来添加新参数。
示例:
search.addWidget(
instantsearch.widgets.hits({
container: '#hits-container',
templates: {
item: itemTemplate
},
transformData: {
allItems: function (results) {
console.log(results);
// Modify results
return results;
}
}
})
);
2) 使用custom widget挂钩渲染回调
您可以编写一个简单的自定义小部件,其中您只指定 render
选项:
search.addWidget({
render: function(data) {
console.log(data);
}
});
在 data
参数中,您将获得有关搜索的所有信息,包括助手、最后状态和最新结果。
您可以在小型 jsFiddle 中看到两种方法:https://jsfiddle.net/JanPetr/g54hzrzp/