2017-11-05 23 views
0

2つの別々のvue jsインスタンスがあります。あるインスタンスから別のインスタンスに値を渡す必要があります。私は休日のIDたびに受信つのインスタンス2つのインスタンス間の通信vuejs

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

から別の

var holiday = new Vue({}); 

発光値に1つのインスタンスからの情報を渡していますどのようにされ、私はされて渡すことができますが、model.Thisにその値をバインドすることはできません2番目のインスタンスがマウントされます。それは私が間違っているのは何モデル

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

にその値をバインドすることはできませんした後、任意の助けいただければ幸いです。

答えて

1

イベントリスナーのコールバックで通常の関数を使用しています。だから、thisthis

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

またはセット字句バインドされているように、だから、矢印の機能を使用しVUEインスタンスを指し、あなたのデータプロパティに

this.temp_holiday_id にアクセスして変更することができない理由のthatsはありませんコールバックように取り付けられたフックにvar self = thisはVUEインスタンス

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

おかげ@Vamsiポインティングself上クロージャを有します。 var self =これは問題を解決しました。 – Amir

関連する問題