0
vueコンポーネントがwebsocket経由でアップデートを受け取ると、<select>
の新しい値が設定されます。vue.js selectの値が `undefined`の値を返します
関連コード
window.VueBus.$on("updated", (channel, key, value) => {
let selfChannel = "model." + self.model + "." + self.pk;
if(channel === selfChannel) {
if(self.key === key) {
console.log("Set " + key + " to " + value);
self.input.off("change");
console.log("off handler");
self.value = value; // when I set value here error happens
self.$nextTick(() => {
self.input.on("change", this.onInputChange);
console.log("on handler");
self.initInput(true);
});
}
}
});
私はこれは私が2つのブラウザウィンドウを開いて、それらのいずれかに変更を加えるとき、それは私に与えるものである
watch: {
value: function(old, newv) {
console.log('old-new');
console.log(old)
console.log(newv)
}
},
ウォッチ機能を追加しました。
old-new
19
# it is just an empty string
old-new
undefined
19
しかし、私は、正しい値が
Set recommender_id to 19
off handler # it is required because onInputChange makes requests to server
エラーコンソール上のコンポーネントに渡されていることがわかり
TypeError: Cannot read property 'length' of undefined
それが原因でテンプレート
<div v-bind:class="{'floating-label-form-group-with-value': value.length > 0}">
でこの行のです別のウィンドウ(I m ake変更)すべてがうまくいきます。