Versucht, vue watch-Methoden zu verwenden, aber es scheint nicht für einige Objekte auch mit deep:true
auslösen.Vue Watch nicht triggern
In meiner Komponente erhalte ich ein Array als Prop, das die Felder die folgenden Formen erstellen. kann ich die Formen bauen und dynamicly binden sie an ein Objekt namens crudModelCreate
und alles funktioniert (i in vue Entwickler-Tools sehen und sogar die Form submiting arbeitet nach Plan)
Aber ich habe ein Problem, zu versuchen, die Änderungen zu sehen in diesem dynamischen Objekt.
<md-input v-for="(field, rowIndex) in fields" :key="field.id" v-model="crudModelCreate[field.name]" maxlength="250"></md-input>
...
data() {
return {
state: 1, // This gets changed somewhere in the middle and changes fine
crudModelCreate: {},
}
},
...
watch: {
'state': {
handler: function(val, oldVal) {
this.$emit("changedState", this.state);
// this works fine
},
},
'crudModelCreate': {
handler: function(val, oldVal) {
console.log("beep1")
this.$emit("updatedCreate", this.crudModelCreate);
// This doesn't work
},
deep: true,
immediate: true
},
}
Wie werden Änderungen in Ihrem Objekt durchgeführt? –
Möglicherweise müssen Sie ['Vue.set'] (https://vuejs.org/v2/api/#Vue-set) verwenden, um Objekteigenschaften zu aktualisieren, insbesondere wenn neue hinzugefügt werden. –
Mögliches Duplikat von [Vue.js beobachtet tiefe Eigenschaften] (https://stackoverflow.com/questions/44760474/vue-js-watching-deep-properties) –