Ich versuche zu beobachten (in meinem Controller), ob sich mein Ember-Modell geändert hat.Neugieriges Verhalten beim Beobachten von Embers dirtyType-Eigenschaft
personChanged: function() {
// do stuff
}.observes('person.dirtyType'),
Dieser Beobachter wird getriggert nie, wenn ich vor dem isDirty
Eigenschaft zugreifen. Wenn zum Beispiel die Eigenschaft get
in der Route (wo das Modell geholt wird) wird der Beobachter genau einmal ausgelöst.
model.people.get('firstObject').get('dirtyType');
controller.set('person', model.people.get('firstObject'));
Wenn ich will, ausgelöst, um die Beobachter bekommen jedes Mal das Modell änderte ich wieder dirtyType
im Beobachter zugreifen muß.
personChanged: function() {
this.get('person.dirtyType');
// do stuff
}.observes('person.dirtyType'),
Der Wert dirtyType
in dem Beobachter immer wie erwartet.
Vielleicht mache ich es völlig falsch, aber ich kann das obige Verhalten nicht folgen.
Das funktioniert nicht für mich, sorry. – Fabic
Unverbrauchte berechnete Eigenschaften lösen keine Beobachter aus [Referenz] (https://guides.emberjs.com/v2.13.0/object-model/observers/#toc_unconsumed-computed-properties-do-not-trigger-observers). Wenn Sie also "person" nicht in der Vorlage verwenden, dann denken Sie über 'this.get ('person')' in der init-Methode nach. – kumkanillam
Ich benutzte 'person' in meiner Vorlage, fügte aber' this.get ('person') 'in der init Methode hinzu. Das Problem bleibt bestehen. – Fabic