javascript - VueJS 自定义指令函数作为参数

标签 javascript vue.js

我有一个简单的指令:

HTML:

<div id="app">
  <div v-sample:callback="greet"></div>
</div>
<script>
  var app = new Vue({
    el: "#app",
    data: {
      files: [],
    },
    methods: {
      greet: function (arg) {
        alert(arg);
      },
    },
  });
</script>

JS:

Vue.directive('sample', {
  bind: function (el, binding, vnode) {
    el.addEventListener('...', function () {
      // ...
      callback.call(arg, ...);
    });
  },
});

但是,我不清楚获取函数和求值的适当语法。在指令中执行此操作的正确方法是什么?

最佳答案

您可以使用 binding.value,在这种情况下它应该是一个函数。它已经预先绑定(bind)到正确的上下文中,所以只需调用它(如果需要,可以在其中传递任何内容):

Vue.directive('sample', {
  bind: function (el, binding, vnode) {
    el.addEventListener('click', function () {
      binding.value()
    });
  },
});

关于javascript - VueJS 自定义指令函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43291473/

相关文章:

javascript - 在 d3.arc 属性中使用函数

javascript - 为什么 Ember 模型的命名与其他模型不同?

javascript - jQuery UI Datepicker 限制和可变日期范围自动更新

vue.js - 如何在 vue 应用程序中使用 register-service-worker 跳过等待?

firebase - VueJs + 火力地堡

javascript - D3 多折线图无法正确显示 X 轴值

javascript - 链接为带有 name 属性的提交按钮

javascript - 根据选择显示项目

vue.js - 在 vue 模板中使用全局变量

javascript - Vue 和 Nuxt Js : why Cannot create property 'display' on string 'bottom:30px;right:30px;' ?