Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在两个vuejs实例之间通信_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 在两个vuejs实例之间通信

Javascript 在两个vuejs实例之间通信,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我有两个单独的vue js实例。我需要将一个值从一个实例传递到另一个实例。我可以传递,但不能在模型中绑定该值。这就是我将信息从一个实例传递到另一个实例的方式 var holiday = new Vue({}); 从一个实例发出值 holiday.$emit('holiday_id',{ holiday_id : response.data.id }); 无论何时装载第二个实例,都将接收假日id。之后,不能在模型中绑定该值 mounted() { holiday.$on('ho

我有两个单独的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;
    });
}

如果我做错了什么,我们将不胜感激

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

因此,请使用箭头函数,以便
按词汇进行绑定

mounted() {
    holiday.$on('holiday_id', (holiday) => {
        this.temp_holiday_id = holiday.holiday_id;
    });
} 
或者在挂载的钩子中设置
var self=this
,以便回调函数在指向vue实例的
self上有一个闭包

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