2016-04-03 5 views
0

Ich habe ein Objekt und möchte eine Funktion ausführen, wenn dieses Objekt ändert. Ich habe versucht, Winkel $watch, aber das funktioniert nur ohne setters.Javascript - wie man ein Objekt beobachtet

Auf der Suche nach einer anderen Lösung fand ich obj.observe aber mdn sagt, es ist veraltet und nicht weit verbreitet. Gibt es eine andere Möglichkeit, eine Funktion auszuführen, wenn sich mein Objekt ändert?

Edit:

// watch using this doen't work, when update through ng-model 
Object.defineProperties(self, { 
     'myprop': { 
      get: function() {return _myprop; }, 
      set: function (value) { 
       _myprop = value; 
      } 
     }, 
+0

Können wir den Code sehen, den Sie bisher versucht haben? –

+0

was meinst du, wenn du '$ watch' arbeitest nur mit' setter'? Solange Sie etwas in "Scope" haben, können Sie eine Wache darüber setzen. – S4beR

+0

Sie können über alles wachen, solange sich dieser Wert in einem eckigen Kontext ändert. – Wawy

Antwort

0

Ich bin mir nicht sicher, was Sie von $ bedeuten schaut "Arbeiten ohne Setter".

Starten Sie einfach einfach, setzen Sie den obigen Code in einen Controller und haben ein einfaches Feld die Variable $ scope.name ändern. Sie werden in der Konsole sehen, dass die Uhr ausgelöst wird.

Verwandte Themen