【问题标题】:Hiding text upon loading a page加载页面时隐藏文本
【发布时间】:2021-09-30 05:38:55
【问题描述】:

我试图在页面加载时隐藏一个 div。每当页面加载时,我希望某些文本根据 API 调用的结果显示或消失。

请原谅这个菜鸟问题,我是 TypeScript 和 Vue 的新手。

我的代码如下所示:

    <div class="row" v-if="!isHidden">
      <p>
        Your file is available!
      </p>
    </div>

虽然我的 TypeScript 看起来像这样:

@Component
export default class File extends Vue {

  @Prop()
  private isHidden: boolean;

  private async init(): Promise<void> {
    this.File = [];
    this.isHidden = true;

    this.File = await API.file.downloadFile(
    );
  
    if (this.File !== ['']) {
      this.isHidden = false;
    }

上面的 TypeScript 在页面加载时调用 API。每当this.File 没有返回空的String[] 时,我该怎么做才能显示文本?

【问题讨论】:

  • this.File.lenght &gt; 0
  • 您能详细说明一下吗? @AmanSharma
  • this.File中有数组时,表示其长度增加了0。只有这样你才能显示你的文字
  • @AmanSharma 感谢您的建议!但是还是不行。

标签: html typescript


【解决方案1】:

如果你使用 vuex,你可以在你的 vue 组件的数据部分或你的状态中创建一个新属性。

调用 api 时,将新属性设置为“正在加载”。当api返回数据时,如果是有效数据,将你的属性设置为'valid',如果是无效的,设置为'invalid'。您可以将其他字符串用于其他情况。然后,您可以根据属性中的字符串更改消息,或者根据需要隐藏数据。

【讨论】:

  • 感谢您的回答!我很抱歉,但我无法想象你刚才说的话。你能分享一个例子吗?
  • 检查数据在vue组件中是如何工作的,如果你没有数据,则将数据添加到组件中,并将属性添加到数据中。调用 api 时,将属性设置为“正在加载”,以便您可以隐藏部分或显示和消息,如“加载数据”或类似内容。当 api 响应时,检查响应,并将您的属性更改为您需要的任何内容。
  • @johnnyrocket33 他的意思是这样的:data: { text: "stuff that gets changed" , status: "loaded" }, methods: { loadFromApi() { this.status = "loading"; } }。每当您完成数据加载时,将状态更改回“已加载”或类似的内容。然后你在你想要隐藏的 div 上做一个 v-show。例如:&lt;div v-show="status === 'loaded'"&gt;
  • 没错,感谢@D.Schaller,但用 v-if 代替 v-show。
  • @MRMarkII 不客气
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多