我有一个名为“ meta”的自定义属性,它有一些值。我想引用一个回调函数,指向放置在“methods”对象中的某个方法。
有没有什么方法可以让它成为vue示例的一部分,让我可以访问“数据、方法、计算”等等?
下面是代码的一部分:
<script>
import { defineComponent } from 'vue'
export default defineComponent({
name: 'Articles',
meta: {
topmenu: [
{
label: 'Create new',
handler: () => {
this.onCreateNew() // <-- unable to call this method
}
}
]
},
methods: {
onCreateNew () { // <-- unaccessible from meta.topmenu[0].handler
console.log('creating new item')
}
}
})
</script>
1条答案
按热度按时间wj8zmpe11#
1.不要在vue示例中使用箭头函数
1.使用bind()* 子函数 *
参考:Vuejs - watch nested object in 'this' not self
然后在任何其他位置使用self:
您还可以访问数据、方法、计算等。就像使用关键字this一样,但使用self。
但是,您必须为每个想要此行为的vue组件执行 * var self = this *,并且由于它们是全局变量,因此它们应该具有不同的名称,否则它们可能会冲突并导致不必要的效果。selfFoo、selfBar、fooSelf、这篇文章、selfArticle等)
希望这能帮上忙