简单代码:
Vue.mixin(
{
methods :
{
test ()
{
return 'test';
}
},
}
);
Vue.directive('my-directive',
{
inserted (el)
{
this.test();
}
}
);
[Vue警告]:指令my-directive插入的挂钩中发生错误:“ TypeError:无法读取未定义的属性'test'”
答案 0 :(得分:0)
您需要一个Vue实例来调用方法,并且指令没有关联的实例。但是,如果不需要 specific 实例(也就是说,如果该方法未引用this
),则可以即时创建一个实例:
Vue.directive('my-directive',
{
inserted (el)
{
new Vue().test();
}
} );
答案 1 :(得分:0)
Vue.mixin(
{
methods :
{
test ()
{
return 'test';
}
},
}
);
Vue.directive('my-directive',
{
inserted (el)
{
//
},
bind(el, binding, vnode)
{
vnode.context.test();
}
}
);