vue.js是否有事件的布尔修饰符?

时间:2017-04-20 19:50:38

标签: vue.js

是否可以在vue.js中执行类似@ click.not.ctrl的操作来指定事件应该仅在ctrl修饰符不为真的点击时触发?

2 个答案:

答案 0 :(得分:0)

不,我们目前没有这样的功能。

你已经检查了自己的回调方法。

答案 1 :(得分:0)

据我所知,Vue.js中没有这样的选项。

您可以使用自定义指令来实现它:https://jsfiddle.net/wostex/63t082p2/35/

<div id="app">
  <button v-noctrl:click="sayHi">Say hi</button>
</div>

new Vue({
  el: '#app',
  directives: {
    'noctrl': {
      bind(el,binding,vnode) {
        if (binding.arg === 'click') {
          el.addEventListener(binding.arg, function(event) {
            if (!event.ctrlKey) {
              event.preventDefault();
              binding.value.call(this);
            }       
          });
        }
      }
    }
  },
  methods: {
    sayHi() {
        console.log('Hi');
    }
  }
});