vue自定义指令如何触发单文件组件的方法

如下代码所示,我写了一个指令,获取到xxx.vue组件里对应的div后,能根据传过来的参数,在一定条件以后触发xxx.vue组件里面的某个方法
我是这样写的:

Vue.directive('loadStatus', {
  inserted: function (el, binding) {
    console.log(el);
    console.log(binding)
    if(!binding) return;
    if(binding.value.status === 'fail') {
      //加载失败
      binding.value.status.statusFn();
    }
  }
});
<template>
    <div v-load-status="{status:'fail',statusFn:test}"></div>
</template>
<script>
export default{
    methods:{
        test() {
            console.log('触发了test');
        }
    }
}
</script>

但是执行后报错:

vue.esm.js?a026:628 [Vue warn]: Error in directive load-status inserted hook: "TypeError: binding.value.status.statusFn is not a function"

image.png

那我该怎么触发这个test方法呢

阅读 3k
2 个回答
binding.value.status.statusFn(); //多了status

binding.value.statusFn();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题