2
Vue.jsで動的にウォッチャーを追加する実験希望の/実際の結果間の切断は、下のコメント欄に示されています。時折/アマチュアコーダーがここにあります。私は自分の問題がVueの方が少なく、JavaScriptの基礎を理解していると思っています。前もって感謝します!forループ内でvue.jsウォッチャーを設定する
new Vue({
el: '#app',
data: {
a: 1,
b: 2,
c: 3
},
methods: {
setUpWatchers(array) {
for (var i in array) {
var key = array[i];
this.$watch(key, function(newValue) {
console.log(key + ': ' + newValue);
//desired output is:
// a: 4
// b: 5
// c: 6
//actual output is:
// c: 4
// c: 5
// c: 6
});
}
}
},
created() {
this.setUpWatchers(['a', 'b', 'c']);
this.a = 4;
this.b = 5;
this.c = 6;
}
});
ありがとう@Bert。確かに、「let」と「const」が新しいものであることは漠然と認識していましたが、「var」が私のために働いていたので、まだ見ていませんでした。 – wwninja
@wwninja多くの場合、それは問題ではありません。これはちょうど起こるものです:修正は、 'let'が利用可能になる前にもっと関わっていました(ループの各反復でクロージャを作成することが必要でした)。 – Bert