Ich habe ein sehr einfaches Autorenmodell mit einem Feld, Name. Ich habe ein Formular in meiner Autoren/neuen Vorlage, das die Aktion aufruft, wenn sie gesendet wird.ember - Fehler beim Speichern eines neuen Modells
<form {{action "save" on="submit"}}>
{{input value=model.name placeholder="Name"}}<br>
<input type="submit" value="Save">
</form>
In meiner Route für Autoren/neu definiere ich das Modell einen Datensatz für Autor zu erstellen, definiert dann die Aktion speichern, dieses Modell zu speichern.
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('author');
},
actions: {
save() {
this.get('model').save();
}
}
});
Wenn ich jedoch auf die Schaltfläche zum Speichern klicken, erhalte ich den folgenden Fehler in meiner Konsole. Uncaught TypeError: this.get(...).save is not a function
. Kann mir jemand helfen, was ich falsch mache?
this.get (‚Modell‘) liefert Funktionsmodell in Route definiert ... eine mögliche Lösungen wäre Ihre Funktion es funktionieren wird an den Controller speichern bewegen. – kumkanillam
Holen Sie das Modell vom Controller statt von der Route. Um Controller zu erhalten, verwende var cont = this.controllerFor ('authors.new'); cont.get ('Modell'). save(); – kumkanillam
Sie können das Modell in Ihrer Route mithilfe von [modelFor] (http://emberjs.com/api/classes/Ember.Route.html#method_modelFor) abrufen. –