两个vuejs实例之间的通信

阿米尔·侯赛因

我有 2 个单独的 vue js 实例。我需要将一个值从一个实例传递到另一个实例。我可以传递但不能在模型中绑定该值。这就是我将信息从一个实例传递到另一个实例的方式

var holiday = new Vue({});

从一个实例发出值

holiday.$emit('holiday_id',{
    holiday_id : response.data.id
});

每当安装第二个实例时接收假期 ID。之后无法在模型中绑定该值

mounted() {
    holiday.$on('holiday_id', function(holiday){
        this.temp_holiday_id = holiday.holiday_id;
    });
}

我做错了什么,任何帮助将不胜感激。

瓦姆西克里希纳

您正在事件侦听器的回调中使用常规函数。所以this不指向 vue 实例,这就是您无法访问和修改this.temp_holiday_id数据属性的原因

所以使用箭头函数,以便在this词法上绑定

mounted() {
    holiday.$on('holiday_id', (holiday) => {
        this.temp_holiday_id = holiday.holiday_id;
    });
} 

var self = this在挂载的钩子中设置,以便回调在self指向 vue 实例上有一个闭包

mounted() {
    var self = this;
    holiday.$on('holiday_id', function(holiday){
        self.temp_holiday_id = holiday.holiday_id;
    });
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章