使用单个文件组件,如何从指令更改数据属性?
例如,我有...
export default {
name: 'app',
data: function() {
return {
is_loading: true
}
},
directives: {
do_something: {
bind: function(el, binding, vnode) {
// Change the is_loading property
}
}
}
}
起初我以为我可以做
this.is_loading = false
,但是this
是undefined
。 最佳答案
要在指令中引用this
,您可以简单地使用vnode.context
,因此在您的指令中您将具有:
do_something: {
bind: function(el, binding, vnode) {
// same as this.is_loading in a directive
vnode.context.is_loading = false;
}
}
然后在您的标记中,您将执行以下操作:
<div v-do_domething></div>
这是JSFiddle:https://jsfiddle.net/3qvtdgyd/