Ember:动态将记录添加到数组



>我有一个页面,我想让用户输入多条记录。例如,假设我有一个页面,用户可以在其中输入任意数量的学生记录,其中每个学生记录都包含姓名、年龄等字段。

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

// 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()),但这没有帮助。

哎呀,看来我想得还不够。我只需要以不同的方式获取模型。

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

最新更新