Algolia vue-instantsearch - 删除结果
Algolia vue-instantsearch - Deleting a result
我目前正在试验 Algolia。到目前为止,这真的令人印象深刻。但是,我遇到了一些 'roadblock'.
我正在使用 vue-instantsearch
包。它目前仅在管理页面上使用。在此页面上,我可以单击一个按钮来调出一个模式,确认是否应删除它。我正在努力寻找一种方法来 'simply' 从结果中删除 指定的文章,而无需重新加载。
我基本上搜索了文档并找到了 deleteObjects
方法,但它不能从 ais-index
组件中访问,也不能从它的任何子组件中访问。
所以,我的真正问题是,我将如何正确实施它?
如能对此事提供任何帮助,非常感谢:)
好的,我似乎已经解决了我自己的问题。
这是我修复它的方法。
首先,我创建了自己的 searchStore
实例
const searchStore = createFromAlgoliaCredentials(
'APP_ID',
'SEARCH_KEY'
);
实例化搜索存储后,我通过 :search-store
属性将其传递给 ais-index
Vue 组件。
这就像一个普通的 vue-instantsearch
组件。
要从结果中删除 'thing',我必须遍历搜索存储并删除结果。搜索存储中有两个结果对象。我需要的是下划线前缀的,可以通过 this.store._results
访问(this
指的是 Vue 组件,它可以访问搜索存储)。
删除结果的完整代码:
this.store._results = this.store._results.filter(loopedArticle => {
return loopedArticle.objectID !== article.objectID;
});
可能不合适以这种方式使用搜索存储,并以这种方式访问'private' 属性,但这是唯一的方式我可以让它工作。
希望这对需要此功能的其他人有所帮助!
我目前正在试验 Algolia。到目前为止,这真的令人印象深刻。但是,我遇到了一些 'roadblock'.
我正在使用 vue-instantsearch
包。它目前仅在管理页面上使用。在此页面上,我可以单击一个按钮来调出一个模式,确认是否应删除它。我正在努力寻找一种方法来 'simply' 从结果中删除 指定的文章,而无需重新加载。
我基本上搜索了文档并找到了 deleteObjects
方法,但它不能从 ais-index
组件中访问,也不能从它的任何子组件中访问。
所以,我的真正问题是,我将如何正确实施它?
如能对此事提供任何帮助,非常感谢:)
好的,我似乎已经解决了我自己的问题。
这是我修复它的方法。
首先,我创建了自己的 searchStore
const searchStore = createFromAlgoliaCredentials(
'APP_ID',
'SEARCH_KEY'
);
实例化搜索存储后,我通过 :search-store
属性将其传递给 ais-index
Vue 组件。
这就像一个普通的 vue-instantsearch
组件。
要从结果中删除 'thing',我必须遍历搜索存储并删除结果。搜索存储中有两个结果对象。我需要的是下划线前缀的,可以通过 this.store._results
访问(this
指的是 Vue 组件,它可以访问搜索存储)。
删除结果的完整代码:
this.store._results = this.store._results.filter(loopedArticle => {
return loopedArticle.objectID !== article.objectID;
});
可能不合适以这种方式使用搜索存储,并以这种方式访问'private' 属性,但这是唯一的方式我可以让它工作。
希望这对需要此功能的其他人有所帮助!