ember - 未能保存新模型

时间:2016-08-05 01:31:48

标签: ember.js model

我有一个非常简单的作者模型,其中包含一个字段,名称。我的作者/新模板中有一个表单,在提交时调用操作保存。

<form {{action "save" on="submit"}}>
  {{input value=model.name placeholder="Name"}}<br>
  <input type="submit" value="Save">

</form>

在我的authors / new路线中,我定义模型为作者创建记录,然后定义动作保存以保存此模型。

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。任何人都可以帮助我解决我做错的事情吗?

2 个答案:

答案 0 :(得分:0)

最简单,最干净的方法是将模型传递给您的保存功能:

<form {{action "save" on="submit" model}}>

save(model) { model.save(); }

答案 1 :(得分:0)

尝试仅对嵌套路由使用modelFor

由于您只在路由中实现model挂钩,因此ember将使用默认实现应用所有其他挂钩。

它会将model上的模型挂钩返回的内容设置为controller

所以你在这里可以做的是:

   let newAuthor = this.get('controller.model');
   newAuthor.save().then(() => { return console.log('it saved!') });