2017-10-28 4 views
1

Wie kann ich diesen Beobachter zerstören? Ich brauche es nur einmal in meiner Kindkomponente, wenn meine asynchronen Daten von der Elternkomponente geladen wurden.vuejs2: Wie kann ich einen Beobachter zerstören?

export default { 
    ... 
    watch: { 
     data: function(){ 
      this.sortBy(); 
     }, 
    }, 
    ... 
} 

gregor;.)

+0

Wie über eine 'wenn/else "im Watcher, der auf ein Datenattribut zugreift? –

+0

ja im moment habe ich es mit einer zweiten property "loaded" gemacht, die ich wahr gemacht habe, als der ajax call fertig war // kind watch: { loaded: function() { this.sortBy(); }, }, // Mutter photosApi.getGalleries (this.id) .then ((Antwort) => { this.loaded = true; this.data = Antwort.data; }). Catch ((Fehler) => { weil das Datenobjekt später geändert wird und dann nicht die "sortBy" -Funktion aufrufen soll –

Antwort

2

Wenn Sie dynamisch einen Beobachter konstruieren durch den Aufruf vm $ Uhr Funktion, es gibt eine Funktion, die zu einem späteren Zeitpunkt aufgerufen werden kann (entfernen), dass bestimmte Beobachter zu deaktivieren .

Sie den Beobachter nicht statisch in der Komponente, wie in Ihrem Code setzen, aber wie etwas tun:

created() { 
    var unwatch = this.$watch(....) 
    // now the watcher is watching and you can disable it 
    // by calling unwatch() somewhere else; 
    // you can store the unwatch function to a variable in the data 
    // or whatever suits you best 
} 

Weitere ausführliche Erklärung von hier zu finden: https://codingexplained.com/coding/front-end/vue-js/adding-removing-watchers-dynamically

Verwandte Themen