Algolia vue-instantsearch-删除结果

时间:2018-07-30 10:18:59

标签: vuejs2 algolia vue-instant-search

我目前正在尝试阿尔戈利亚。到目前为止,确实令人印象深刻。但是,我遇到了一些“障碍”。

我正在使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="number"data-input-payment-id="12">软件包。当前仅在管理页面上使用它。在此页面上,我可以单击一个按钮以弹出一个模式,该模式确认是否应删除它。我正在努力寻找一种方法,可以从结果中“简单地” 删除指定的文章,而无需重新加载。

我从本质上已经精读了文档,发现了vue-instantsearch方法,但是无法从deleteObjects组件或其任何子组件中访问它。

所以,我的问题确实是,我将如何正确实施呢?

在此问题上的任何帮助都将非常:)

1 个答案:

答案 0 :(得分:0)

好的,我似乎已经解决了自己的问题。

这是我修复它的方法。

首先,我创建了自己的searchStore

实例
const searchStore = createFromAlgoliaCredentials(
    'APP_ID',
    'SEARCH_KEY'
);

实例化搜索存储后,我会通过ais-index道具将其传递给:search-store Vue组件。

这就像普通的vue-instantsearch组件一样。

要从结果中删除“内容”,我必须遍历搜索存储并删除结果。搜索存储中有两个结果对象。我需要的是一个带有下划线的前缀,可以通过this.store._results进行访问(this是指可以访问搜索存储的Vue组件)。

删除结果的完整代码:

this.store._results = this.store._results.filter(loopedArticle => {
    return loopedArticle.objectID !== article.objectID;
});

以这种方式使用搜索存储并以这种方式访问​​“私有”属性可能是不当,但这是我可以使其正常工作的唯一方法。

希望这可以帮助需要此功能的其他人!