Ich habe ein eingebettetes Objekt namens Comment, in einem Spiel. Jedes Spiel kann viele Kommentare enthalten.Emberjs - Wie setze ich ein Feld auf einer Komponente nach dem Speichern zurück?
Wenn ein Benutzer (Parent) die Spielseite aufruft, kann er einen Kommentar hinterlassen.
Das Problem, das ich habe, ist, dass ich nicht scheinen kann, den Körper des Kommentarfeldes zurück zu leeren, nachdem der Kommentar gespeichert wird.
Dies ist die Komponente:
MyApp.AddCommentComponent = Ember.Component.extend({
body: '',
actions: {
addComment: function() {
var comment, failure, success;
if (!!this.get('body').trim()) {
comment = this.store.createRecord('comment', {
body: this.get('body'),
game: this.get('game'),
parent_id: this.get('parent_id'),
parent_name: this.get('parent_name')
});
success = (function() {
this.set('body', '');
});
failure = (function() {
return console.log("Failed to save comment");
});
return comment.save().then(success, failure);
}
}
}
});
Der Fehler ist auf der ‚this.set‘ line - this.set Alle
ist die Beispiele nicht eine Funktion, die ich finden über das tun dies in einem Controller oder durch Erstellen eines neuen Datensatzes bei einer Routenänderung (aber die Route ändert sich in meinem Beispiel nicht, da nur ein weiteres eingebettetes Objekt zur bestehenden Seite hinzugefügt wird).
die Lösung hier zu finden: http://stackoverflow.com/questions/35534260/ember-2-3-record-is-updated-on-save-but- ember-still-sagt-dass-es-fehlgeschlagen-on/35537284 # 3 5537284 wird auch für Sie arbeiten. Aber lassen Sie mich kurz andere Optionen einwerfen: (1) success = function() { this.set ('body', ''); } .bind (dies); (2) Erfolg =() => { this.set ('Körper', ''); }; (3) return comment.save(). Then (() => {this.set ('body', '');}). Catch (() => {// log err;}); –