Die beobachtete berechnete Eigenschaft wird nicht ausgelöst, wenn sie zweimal hintereinander geändert wird

StackOverflow https://stackoverflow.com/questions/9445676

  •  12-11-2019
  •  | 
  •  

Frage

Ich habe ein Ember.Object, das ich mit einer Eigenschaft wie unten aktualisiere, aber wenn ich „primaryDemo“ zweimal hintereinander ändere, wird es nicht ausgelöst. Wenn ich „primaryDemo“ und dann „Rate“ ändere, ändert es sich jedoch.Ich frage mich, woran das liegt und wie ich es beheben kann.

dependantChanged: function() {
    console.log('Firing change');
    this.get('_update')(this);
}.observes('primaryDemo', 'Rate', 'Totals'),

AKTUALISIEREN:Die erste Antwort und das erste Gefummel brachten mich zum Nachdenken darüber, wo das Problem lag und dass es an der Änderung einer Eigenschaft eines Objekts und nicht am Objekt selbst lag.Ich denke, Ember führt einen Hash-Check durch, um festzustellen, ob es einen Unterschied gibt.In meinem Fall verwende ich bereits underscorejs, also ändere ich einfach die Eigenschaft und verwende dann _.clone(demo), bevor ich den Satz durchführe.Ich würde das lieber nicht tun, also werde ich abwarten, ob es eine elegantere Lösung gibt, bevor ich dies schließe.

War es hilfreich?

Lösung

Sie müssen den generationspflichtigen Code nicht erneut einstellen.In der Beispiel das tut nichts.Sie müssen erzwingen, dass Sie Ember erzielen, um Ihren Beobachter zu benachrichtigen. Siehe diese Geige ... generasacodicetagpre.

Andere Tipps

Können Sie weitere Details nennen?Ich habe eine einfache JSFiddle erstellt http://jsfiddle.net/JjbXb/ Aus Ihrer Beschreibung geht hervor, aber das Ändern derselben Eigenschaft nacheinander funktioniert, wie Sie sagen.

Sind Sie sich über den Wert sicher? primaryDemo ist bei Ihren 2 aufeinanderfolgenden Anrufen anders?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top