背景:1.0から2.0に移行しています。
現在、ネストされたコンポーネントを使用しています。親と子の関係は完璧です。ただし、親コンポーネントとメインのVue()インスタンスの関係が壊れています。 Vue()インスタンス内の計算されたプロパティcssstyle
は、私が予想していたように$ emit()/ $ on()に基づいて更新されません。
関連セクション:HTMLにおける親コンポーネントの
使用法:主ヴュー()インスタンス
computed: {
cssstyle: function() {
console.log('cssstyle computed');
bus.$on('padding_changed', function (padding_style) {
return padding_style;
});
return 'padding: 0px;';
},
...
内
<f9-padding v-if="editable" ></f9-padding>
computed: {
cssstyle: function() {
var padding_style = this.padding();
bus.$emit('padding_changed', padding_style);
return padding_style;
}
}
親内部の計算されたプロパティは正常に更新されます。しかし、メインのVue()インスタンス内の計算されたプロパティは、ページのロード時にのみ実行されます。 <input>
要素を使用していない親からデータを出力する方法を理解できません。私がサイトで見つけたほとんどの例は、<input>
の場合のみに焦点を当てています。私はちょうどプロパティデータを変更して計算しました。私はここに表示されたメソッド:http://rc.vuejs.org/guide/components.html#Custom-Eventsを使用しようとしましたが、このドキュメントについて懸念しているのは、親コンポーネントとメインのVue()インスタンスではなく、コンポーネント間のイベントリスニングです。
アップデート:私はこれまで親に計算されたプロパティを変更することで、この問題を解決することができた:
computed: {
cssstyle: function() {
var padding_style = this.padding();
this.$root.cssstyle = padding_style;
return padding_style;
}
}
とルートヴュー()インスタンスのデータに計算されたからcssstyleを動かします。
data: {
cssstyle: 'padding: 0px;',
},
はしかし、私が使用するための少し汚い感じ:
this.$root.cssstyle
は、そこには他に方法はありませんか?
最初の方法が有効です。 – gurghet
ルートVueインスタンスの計算されたcssstyleは、padding_changedイベントによってトリガされません。 –