2017-04-10 2 views
0

Ich habeWie Beziehung Änderung in Ember.js nach create

Ember.computed("task.inputValues.[]", .. 

Innerhalb dieses Verfahren bei bestimmten Zustand zu erfassen, i auslösen Schaffung neuer inputValues, die eine Aufgabe mit belongsTo gesetzt haben. Aber nachdem Datensätze und Relationen erfolgreich in der Ember-Datenbank (unter Verwendung von "createRecord") festgelegt wurden, fängt "task.inputValues. []" die berechnete Methode nicht ab, um sie neu zu berechnen?

+1

Nicht direkt verwandt, aber im Allgemeinen empfehlen Leute, berechnete Eigenschaften mit Nebenwirkungen zu vermeiden (wie das Erstellen neuer Datensätze). Der Grund dafür ist, dass Sie Fehler an fremden Orten bekommen können, wenn Ihre Komponente während der Arbeit mit dem Ember Store zerstört wird. Haben Sie die Verwendung von Ember-Concurrency-Aufgaben untersucht, um Ihre Anforderungen zu erfüllen? Es könnte andere Dinge vereinfachen (oder helfen, Nebenläufigkeitsprobleme zu vermeiden, die in der Zukunft auftauchen würden ...) – acorncom

+0

Von der Komponente sende ich ein Signal an den Controller, der createRecord bei Laden aufruft. Wenn es dann neu berechnet würde, würde es nicht wieder gesendet werden. (Wenn ich die Neuberechnung durch eine andere Aktion erzwinge, wird alles so gezeichnet, wie es sollte, aber am Anfang muss ich prüfen, ob einige Entitäten existieren und wenn nicht, muss ich sie an diesem Punkt erstellen und neuzeichnen) –

Antwort

0

Wie Acorncom erwähnt „Leute empfehlen berechneten Eigenschaften mit Nebenwirkungen vermieden werden (wie zum Beispiel die Schaffung neuer Datensätze)

scheint, gibt es eine Art von Schutz in Ember, die von selbst rekursiven Triggern der berechneten Eigenschaft verbietet.

Die Lösung bestand darin, Datensätze zu verschieben, die Code von der berechneten Eigenschaft zu Observer erstellen, nachdem neue Datensätze vom Beobachter eingefügt wurden. Der berechnete Eigenschaftsselektor "task.inputValues. []" Hat ausgelöst.

Verwandte Themen