javascript - 如何将超时变量分配给 Vuetify 中的 <v-alert> 标签?

标签 javascript vue.js vuejs2 vue-component vuetify.js

我想显示一个警告框来通知用户一些事情。我希望它在 5 秒后消失,即使用户不承认它也是如此。

我已经尝试过 timeout:timeout 属性,但这些属性似乎都不起作用,根据 Vuetify 文档,它们甚至不存在于标签中,所以我毫 headless 绪。

模板:

<div>
      <v-alert
        :value="alert"
        v-model="alert"
        dismissible
        color="blue"
        border="left"
        elevation="2"
        colored-border
        icon="mdi-information"
      >Registration successful!</v-alert>
    </div>

    <div class="text-center">
      <v-dialog v-model="dialog" width="500">
        <template v-slot:activator="{ on }">
          <v-btn color="red lighten-2" dark v-on="on">Click Me</v-btn>
        </template>

        <v-card>
          <v-card-title class="headline grey lighten-2" primary-title>Privacy Policy</v-card-title>

          <v-card-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</v-card-text>

          <v-divider></v-divider>

          <v-card-actions>
            <div class="flex-grow-1"></div>
            <v-btn color="primary" text v-if="!alert" @click="dialog = false, alert">I accept</v-btn>
          </v-card-actions>
        </v-card>
      </v-dialog>
</div>

脚本:

import Vue from "vue";

export default {
  data() {
    return {
      alert: false,
      dialog: false
    };
  },

  created() {
    setTimeout(() => {
      this.alert = false
    }, 5000)
  }
};

最佳答案

在创建的钩子(Hook)中添加 5 秒的超时范围,将 alert 属性更新为 false:

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data(){
    return{
       alert: true,
    }
  },
  created(){
    setTimeout(()=>{
      this.alert=false
    },5000)
  }
})

在模板中将 v-alertvalue 属性绑定(bind)到 alert 数据属性:

<div id="app">
  <v-app id="inspire">
    <div>
      <v-alert type="success" :value="alert">
        I'm a success alert.
      </v-alert>

    </div>
  </v-app>

检查这个pen

关于javascript - 如何将超时变量分配给 Vuetify 中的 <v-alert> 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957906/

相关文章:

vue.js - 视觉 : nuxt-i18n: Cannot translate the value of keypath

vue.js - 一旦我将 "props"添加到组件中,我就会得到 : Error in callback for watcher "function () { return this._data.$$state }"

javascript - 根据文本区域更改数据点的样式

javascript - 提交表单后如何刷新页面?

javascript - 使用 React 时,在构造函数中使用粗箭头函数还是绑定(bind)函数更可取?

vue.js - Nuxt.js - 字体在生产中预加载

vue.js - Vuetify 粘性标题工具栏

javascript - Vuejs 在组件中单击按钮时将类切换到主体

javascript - 在 Chrome 开发者控制台中隐藏违规行为

javascript - Protractor 的等价物被显示