首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏ais-state-results构件的默认消息

隐藏ais-state-results构件的默认消息
EN

Stack Overflow用户
提问于 2019-05-28 06:50:12
回答 1查看 334关注 0票数 1

我使用ais-instant-searchais-state-results来显示我的数据。我将结果隐藏到query.length > 0。它可以工作,但如果我不输入任何搜索字符串,它总是显示一条消息。下面是我的代码和截图:

代码语言:javascript
复制
<ais-state-results>
            <p slot-scope="{ query, hits }" v-if="!hits.length">
                Not found for: <q>{{ query }}</q>
            </p>
            <template v-else slot-scope="{ query }">
                <ais-hits v-if="query.length > 0">
                    <template slot="item"
                            slot-scope="{ item }"
                    >
                        <h1>
                            <ais-highlight
                                    :hit="item"
                                    attribute="name"
                            />
                        </h1>

                        <ul>
                            <li>{{ item.price }}</li>
                        </ul>

                    </template>
                </ais-hits>
            </template>
        </ais-state-results>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 22:03:45

小部件包含a fallback content,它在默认插槽为空时呈现(这是您给出的屏幕截图)。一旦应用程序启动,你在示例中编写的两个条件都是假的。由于槽中没有渲染任何内容,因此默认渲染会生效。当所有条件都不满足时,您可以使用空的div来解决此问题。下面是一个示例:

代码语言:javascript
复制
<ais-state-results>
  <template slot-scope="{ query, hits }">
    <!-- First condition -->
    <p v-if="!hits.length">Not found for: <q>{{ query }}</q></p>
    <!-- Second condition -->
    <ais-hits v-else-if="query" />
    <!-- Fallback condition -->
    <div v-else />
  </template>
</ais-state-results>

你可以在CodeSandbox上找到一个活的例子。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56333189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档