VueJS-如何从指令访问mixin方法



简单代码:

Vue.mixin(
{
methods :
{
test ()
{
return 'test';
}
},
}
);
Vue.directive('my-directive',
{
inserted (el)
{
this.test();
}
}
);

[Vue warn]:指令中出错,我的指令插入了钩子:"TypeError:无法读取未定义的的属性'test'">

Vue.mixin(
{
methods :
{
test ()
{
return 'test';
}
},
}
);
Vue.directive('my-directive',
{
inserted (el)
{
//
},
bind(el, binding, vnode)
{
vnode.context.test();
}
}
);

您需要一个Vue实例来调用上的方法,而指令没有关联的实例。但是,如果您不需要特定的实例(也就是说,如果该方法不引用this(,您可以立即创建一个实例:

Vue.directive('my-directive',
{
inserted (el)
{
new Vue().test();
}
} );

最新更新