Ember:动态地向阵列添加记录

时间:2017-11-06 21:29:12

标签: ember.js ember-data

我有一个页面,我想让用户输入多个记录。例如,假设我有一个页面,用户可以输入他想要的学生记录,其中每个学生记录包含姓名,年龄等字段。

目前,我在页面上有一个按钮,用于调用控制器上的方法。

// controller/studentlist.js
actions: {
    createStudentRecord() {
        let student =  this.get('store').createRecord('student', {});
        let model = this.get('model') || Ember.A();
        model.pushObject(student);
        this.set('model', model);
    }
}

我最初是这样获取模型的:

// routes/studentlist.js
model(params) {
    return this.get('store').query('student', { orderBy: 'class_id', equalTo: params.class_id });
}

然后,我在我的模板中迭代model,这样当模型更新时,列表也会更新。

// templates/studentlist.hbs
{{#each model}}
    // Show list of students
{{else}}
    <p>No students.</p>
{{/each}}

然而,当我这样做时,我得到internalModel.getRecord is not a function

谷歌搜索引导到github。 https://github.com/emberjs/data/issues/3530,这似乎与我的问题完全相同。但是,我并没有完全了解我应该做的事情来使这个场景有效。有人可以指导我正确实施吗?

我尝试过this.set('model', model.toArray()),但这没有用。

1 个答案:

答案 0 :(得分:0)

哎呀,似乎我没想够。我只需要以不同的方式获取模型。

i = i + 1;