0
我有分量,裏面我做冒落:不能從一個孩子發出另一個
methods: {
sendClick(e)
{
bus.$emit('codechange', this.mycode);
console.log(this.selectedLanguage);
this.$parent.sendCode();
this.$parent.changeView();
}
}
在父組件我hadling數據:
var app = new Vue({
el: '#app',
data: {
currentView: 'past-form',
mycode: ''
},
methods:
{
changeView()
{
console.log(this.mycode);
},
sendCode()
{
console.log("Code is sended to server");
this.currentView = 'view-form';
bus.$emit('codechange', this.mycode);
}
},
created()
{
bus.$on('codechange', function(mycode){
console.log("test"); // this works
this.mycode = mycode; // this works
}.bind(this));
}
})
處理在父母工作精細。但點擊sendCode()
我想發送數據到第三個組件。第三個組件代碼:
Vue.component('view-form', {
template: `
<div class="ViewCodeContainer">
<div class="ViewCode">my code here</div>
<code> {{mycode}} </code>
<div class="ViewCodeMenu">my menu here</div>
</div>`,
data() {
return {
mycode: ''
}
},
created()
{
bus.$on('codechange', function(mycode){
console.log("hererere");
console.log(mycode);
this.mycode = mycode;
}.bind(this));
console.log("test");
}
})
但是,處理代碼不起作用。塊console.log("hererere");
未執行。我做錯了什麼?
看起來像「view-form」組件根本就沒有創建。確保它出現在你的模板中。或者console.log在listener之前的'created'鉤子中。否則它應該工作:https://jsfiddle.net/wostex/63t082p2/74/ – wostex
它的創建,因爲我可以切換到它。如果我是硬編碼'我的代碼'它,我可以看到它 –
您是否正在使用'is'設置爲'currentView'的動態組件? – Bert