Ember: динамически добавлять запись в массив

CookieMonster спросил: 13 октября 2017 в 07:49 в: ember.js

У меня есть страница, на которой я хочу разрешить пользователю вводить несколько записей. Например, допустим, у меня есть страница, на которой пользователь может ввести столько записей, сколько ему нужно, где каждая запись студента содержит поля, такие как имя, возраст и т. Д.

В настоящее время у меня есть кнопка на странице который вызывает метод на контроллере.

// 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.

Google ведет к этому на github. https://github.com/emberjs/data/issues/3530, что похоже на ту же проблему, что и у меня. Однако я не совсем понимаю, что должен делать, чтобы этот сценарий работал. Может ли кто-нибудь подсказать мне, как правильно это реализовать?

Я пытался выполнить this.set('model', model.toArray()), но это не помогло.


0 ответов