如果在VueJS/VuetifyJS中切换开关,则调用函数

Tom*_*Tom 2 javascript toggle vue.js vuetify.js

我正在为VueJS 使用VuetifyJS,如果交换机切换,我需要调用一个函数.怎么做?

模板:

 <v-container fluid>
    <v-switch :label="`Switch 1: ${switch1.toString()}`" v-model="switch1"></v-switch>
  </v-container>
</template>
Run Code Online (Sandbox Code Playgroud)

脚本:

<script>
  export default {
    data () {
      return {
        switch1: false
      }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

Meh*_*ati 8

找到另一种更好的解决方案来使用@changeprop,每次切换开关时都会调用该方法.

    <v-switch
        :input-value="true"
        @change="changeState(item.id)"
    ></v-switch>
    <v-switch
        :input-value="true"
        @change="changeState(item.id)"
    ></v-switch>
Run Code Online (Sandbox Code Playgroud)

这是脚本,

methods:{
    changeState(id) {
        console.log("Switch "+id);
        // Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)


Vam*_*hna 7

您可以在data 属性上设置观察者switch1,如下所示:

<script>
  export default {
    data () {
      return {
        switch1: false
      }
    },
    watch: {
      switch1(newValue){
        //called whenever switch1 changes
        console.log(newValue);
      }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

由于v-modelofv-switch绑定到switch1,每当开关被打开/关闭时, 的监视处理程序将switch1被调用并更改newValue

这是一个代码笔

  • 找到了另一个更好的解决方案,它使用 `@change` 属性。 (2认同)
  • @change 不是更好的解决方案,违背了 Vue 的目的 (2认同)