Ember.js 是否需要在创建新模型实例之前使用createRecord?

Ember.js 是否需要在创建新模型实例之前使用createRecord?,ember.js,ember-data,Ember.js,Ember Data,在使用余烬和余烬数据构建我的第一个应用程序时,我注意到,在为新创建的模型键入输入字段时,有一次我开始出现以下错误: 断言失败:无法将集合('notes',t)委托给对象代理的'content'属性:其'content'未定义 我通过向路线添加以下代码解决了此问题: App.LessonNewRoute = Ember.Route.extend({ model: function() { return this.store.createRecord('lesson');

在使用余烬和余烬数据构建我的第一个应用程序时,我注意到,在为新创建的模型键入输入字段时,有一次我开始出现以下错误:

断言失败:无法将集合('notes',t)委托给对象代理的'content'属性:其'content'未定义

我通过向路线添加以下代码解决了此问题:

App.LessonNewRoute = Ember.Route.extend({
    model: function() {
        return this.store.createRecord('lesson');
    } 
});
我的理解是,当我使用
ObjectController
创建LessonController(而不是让ember生成)时,这个错误就开始发生了

我现在想知道:

  • 是否需要在创建新模型实例之前使用createRecord
  • 这是防止此错误发生的最佳方法吗

  • 据我所知,你的方法很好

    为了在视图中使用模型,必须以某种方式使模型实例可用。因此,如果您尝试在未分配任何内容时使用
    内容
    ,它将失败。我使用不同的方法来解决这个问题,但是在操作处理程序中创建记录

    对于某些场景,特别是小模型,我通常在控制器中创建相应的属性(有点像viewModel方法),并使用一个操作来处理保存。然后我实际上在该操作中创建了记录,传递
    createRecord
    的控制器属性参数

    示例(完全概念化):

    然后在模板中,我将输入绑定到控制器道具,而不是模型

    {{input type="text" value=controller.personName}}
    

    通过这种方法,我的
    Route#model
    不会输出要添加到我的存储中的空白模型,因此我不必处理
    rollback
    或任何事情。

    有趣的方法,我将尝试实现它,看看哪一个更适合我。然而,在尝试时,我似乎无法在model.save上使用done处理程序,它总是抛出以下错误:
    TypeError:undefined不是一个函数
    {{input type="text" value=controller.personName}}