我能否做到这一点,使得click事件仅在某个变量为true时才执行?

时间:2019-01-18 13:16:34

标签: javascript vue.js vuejs2

我想这样做,以便用户只能触发单击事件,然后仅在某个变量为true时才执行功能。例如:

<button @click='hello'>Trigger</button>

data: function() {
    return {
        isAuth: true
    }
},
methods: {
    hello(){
         console.log('hello')
    }
}

我只想指出,我不想只隐藏按钮。我要使按钮元素上的点击不触发,除非isAuth:true。

2 个答案:

答案 0 :(得分:0)

如果您确实想要,我想您可以按照以下方式进行操作:

<button @click='isAuth ? hello : {}'>Trigger</button>

但是,老实说,这对我来说不是正确的方法。而且我认为您应该考虑在按钮单击时调用该函数,然后在该函数内部使用if语句:

<button @click='hello'>Trigger</button>

data: function() {
    return {
        isAuth: true
    }
},
methods: {
    hello(){
      if (!this.isAuth) return;
      console.log('hello')
    }
}

答案 1 :(得分:-1)

<button @click='hello'>Trigger</button>
data: function() {
return {
  isAuth: true
 }
},
methods: {
 hello() {
  if (this.isAuth) {
    console.log('hello')
  }
 }
}