Ember.js - Anweisungen zum löschen der Formular-Daten nach dem speichern den Datensatz?
Bin ich mit Ember App-Kit. Ich habe ein Formular, das nimmt ein student Namen und ich kann speichern Sie die Daten in eine Datenbank ohne problem. Das problem ist, die Daten (student name) behält auf dem Formular immer wenn ich Wechsel zurück zu dieser Strecke (http://localhost:8000/#/students/new
) von einer anderen Seite. Wenn ich den Bildschirm aktualisieren, dann werden die Daten gelöscht und ich bekomme eine frische form. Was mache ich falsch?
Auch, wenn ich mich entschließe, nicht zu speichern, oder fügen Sie den Eintrag und gehen Sie auf die Liste der Studierenden, sehe ich einen leeren Datensatz auf dem Bildschirm. Datensatz nicht in der Datenbank aber. Wie kann ich das verhindern?
//--------------------------------------------
//Controller
var StudentsNewController = Ember.ObjectController.extend({
init: function() {
var newSystem = this.store.createRecord('student');
this.set('newStudent', newStudent);
this._super();
},
actions: {
acceptChanges: function () {
var self = this;
self.get('newStudent').save().then(function(student){
self.transitionToRoute('students');
});
}
}
});
export default StudentsNewController;
//--------------------------------------------
//Model
var Student = DS.Model.extend({
name: DS.attr('string'),
major: DS.belongsTo('major')
});
export default Student;
//--------------------------------------------
//Template
<form {{action 'updateSystem' on="submit"}}>
<fieldset>
<div>
<label>Student Name</label>
{{input value=newStudent.name size="50"}}
</div>
<button {{action 'acceptChanges'}}>Add</button>
</fieldset>
</form>
- Ist die information in der form gespeichert, wie eine auto-vervollständigen, oder ist der eingegebene Daten in das Formular eingegebenen Daten, so dass, wenn Sie klicken Sie auf
Add
Student Hinzugefügt werden, dass die Informationen? - Einen Benutzer geben, der die Eingabe (keine auto-Vervollständigung) und klickt auf "Hinzufügen", um zu speichern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, um den setup-controller in Sie route (hier) anstatt mit der
init
Methode im controller. Es ist eine der Routen Verantwortlichkeiten.Ich denke, das problem ist, dass Sie davon ausgehen, dass jedes mal, wenn Sie die Umstellung auf die
StudentsNewRoute
eine neueStudentsNewController
erstellt wird, und somit dieinit
- Methode aufgerufen wird.Die Wahrheit ist Ember erstellt der controller einmal und ändert den Inhalt auf der Grundlage der
model
und diesetupController
Haken. Also dieinit
- Methode der controller-es ist einmal aufgerufen, und Sie am Ende mit dem gleichen Datensatz jedes mal, wenn Sie die Umstellung auf die route.Um dieses Problem zu lösen, du würdest so etwas tun:
Ich hoffe, dies hilft Ihnen!
setupController
um diese zu löschen gebundenen Variablen?