私は1つのフィールド、名前を持つ非常に簡単な作成者モデルを持っています。私は提出されたときにアクションの保存を呼び出す私の著者/新しいテンプレートのフォームを持っています。ember - 新しいモデルを保存できません
<form {{action "save" on="submit"}}>
{{input value=model.name placeholder="Name"}}<br>
<input type="submit" value="Save">
</form>
私の作者/新規作成のルートでは、作成者のレコードを作成するためのモデルを定義し、このモデルを保存するためのアクションを定義します。
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('author');
},
actions: {
save() {
this.get('model').save();
}
}
});
ただし、保存ボタンをクリックすると、コンソールに次のエラーが表示されます。 Uncaught TypeError: this.get(...).save is not a function
。私が間違っていることについて誰でも助けてくれますか?唯一のネストされたルートのmodelFor
を使用しようと
<form {{action "save" on="submit" model}}>
save(model) { model.save(); }
this.get(「モデル」)ルートで定義された関数モデルを返します...一つの可能な解決策は、それが動作するコントローラへのあなたの保存機能を移動するだろう。 – kumkanillam
ルートからではなくコントローラからモデルを取得します。コントローラを使用するにはvar cont = this.controllerFor( 'authors.new'); cont.get( 'model')。save(); – kumkanillam
[modelFor](http://emberjs.com/api/classes/Ember.Route.html#method_modelFor)を使用してルート内のモデルを取得できます。 –