2016-03-02 7 views

Antwort

8

Wenn Sie Armbanduhr verwenden möchten Ihr Eigentum zu beobachten, könnten Sie Ihre Methode, um es mit this.foo nennen:

data: function() { 
    return { 
     questions: [] 
    } 
}, 

watch: { 
    questions: { 
     handler: function(val, oldVal) { 
      this.foo(); // call it in the context of your component object 
     }, 
     deep: true 
    } 
},  

methods: { 
    foo() { 
     console.log("foo called"); 
    } 
} 

Um Ihre Frage zu handler zu beantworten: Es ist ein Schlüsselwort Eigenschaft, die entweder eine Funktion Ausdruck nehmen (wie im Beispiel) oder ein Verweis auf eine Funktion, wie zum Beispiel:

function myHandler() { ... } // Defined somewhere outside of the vue component object 

... 

handler: myHandler, 

... 

Nur aus Neugier: Sie benötigen eine Eigenschaft, um zu beobachten, was jedes Mal zu tun, ändert es oder könnten computed properties lösen Ihre pr auch ein Problem?

+0

Bin ich richtig, dass auf jeder Datenänderung 'foo' anrufen wird? Ich muss meine Daten zu Änderungen bei jedem Klick auf ein Kontrollkästchen überprüfen. Ist es genug für mich? Jetzt ändere ich Werte der 'Frage' Struktur mit' v-model = "firstLevelAnswer.isSelected" '. Und jetzt sehe ich keine Änderungen an der Konsole, wenn ich auf Checkboxen klicke. Ich erwarte, dass foo immer dann aufgerufen wird, wenn sich die 'Daten' ändern. –

+0

Was ist 'firstLevelAnswer'? Mit Ihrem Code sehen Sie nur nach Änderungen an "Fragen". Der Name des Schlüssels im Objekt "Uhr" ist die Eigenschaft, die Sie sehen werden. – nils

+0

hier ist meine Fragen: http://www.everfall.com/paste/id.php?6blwxsym1kmm Hier der Hauptteil meines Projekts: http://www.everfall.com/paste/id.php?ypTV4v76qqmi –

Verwandte Themen