vue.js - 我可以使用数据中的设置动态更改子组件实例中的父函数名称吗?
问题描述
初学者寻求帮助。太感谢了。
我可以使用数据中的设置动态更改子组件实例中的父函数名称吗?
它可以正常工作: <my-component btntext="TEXT" @emitfn="fn1">
但我需要这样做: <my-component btntext="TEXT" @emitfn="emitname"> 而 Vue 给了我错误...
这是我的代码:
<div id="root">
<my-component btntext="TEXT" @emitfn="emitname"></my-component>
</div>
<script>
Vue.component('myComponent', {
props: ['btntext'],
template: '<button @click="childFN">{{btntext}}</button>',
methods: {
childFN: function(){
this.$emit("emitfn");
}
},
data: function(){
return {
emitname: 'fn1'
}
}
});
var vm = new Vue({
el: '#root',
methods: {
fn1: function(){
alert('fn1');
},
fn2: function(){
alert('fn2');
}
}
});
</script>
解决方案
您可以使用this.$options.methods['methodName']
.
在你的情况下,你可以使用这个:
父组件:
<my-component btntext="TEXT" @emitfn="emitfn"></my-component>
methods: {
fn1: function(){
alert('fn1');
},
fn2: function(){
alert('fn2');
},
emitfn(emitname) {
this.$options.methods[emitname]();
},
}
子组件:
methods: {
childFN: function(){
this.$emit("emitfn", this.emitname);
}
},
推荐阅读
- reactjs - React redux 创建一个从应用程序的其他部分获取状态的操作
- citrus-framework - TestContext 始终为 Null
- sql - 从另一列具有集合中所有值的记录中查找唯一列值
- css - 在svg中旋转tspan元素?
- python - 如何在python中查找图像中特定点的像素坐标?
- python-3.x - BadValueError:不支持的属性类型
- php - PHP如何获取上一季度的开始和结束日期
- javascript - 在页面加载时从 API 导航到异步路由
- go - Where does go put imports when using modules with no GOPATH set?
- azure - 哪个 Azure VM 最适合 IO 密集型服务?