javascript - Snackbar Vuetify - 超时后覆盖方法

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

我想问你如何定义一个在timeout之后执行的方法?在 timeout 之后,我想执行 $emit 事件,但我不知道该怎么做...

<v-snackbar
  v-model="snackbar"
  :color="primary"
  :timeout="5000"
>
  {{ text }}
  <v-btn
    dark
    flat
    @click="snackbar = false"
  >
    Close
  </v-btn>
</v-snackbar>

https://vuetifyjs.com/en/components/snackbars

最佳答案

根据文档,该属性没有附加事件,但我会提供一个响应您的用例的解决方案,将 timeout 属性添加到您的数据对象,如下所示:

   data() {
         return {
          snackbar:false,
          timeout:6000,
          ....
         }
    }

为您的按钮点击添加一个事件处理程序:

     <v-btn block
       color="primary" 
       dark
       @click="showSnackbar">
       Show Snackbar
    </v-btn>

在你的方法中添加showSnackbar方法

    methods: {
         showSnackbar() {
           this.snackbar=true;
           setTimeout(() => { this.$emit("yourEvent"); },this.timeout);
         }
       }

我在这个 pen 中模拟了你的情况

关于javascript - Snackbar Vuetify - 超时后覆盖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073055/

相关文章:

javascript - 如何创建通过打开新窗口生成链接的功能

javascript - Vue.js 和 Webpack 中分离脚本、样式和模板

javascript - Vue动态计算输入变化

javascript - vue js 复选框,将 json 对象作为值传递给模型

javascript - 迁移到 Vue 2.0 $on() 听不到 $emit()

javascript - 如何使用 Jasmine BDD 测试文件上传

javascript - 如何使用 jQuery 将 DOM 对象放置在数据属性中?

javascript - 如何手动创建 multipart/form-data

d3.js - 如何将 csv 文件加载到 nuxt vue 组件中

css - VueJS 正在删除我的 !important CSS 声明