2017-11-06 10 views
0

私はユーザーが複数のレコードを入力できるようにするページを持っています。たとえば、ユーザーが希望する生徒のレコードの数を入力できるページがあるとします。各生徒のレコードに名前、年齢などのフィールドが含まれています。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())をやってみましたが、これは助けになりませんでした。

+0

うーん、それはうまくいくはずです、あなたはあなたのテンプレートで '{{#あなたのモデルを|学生|}}'しようとしましたか? – acorncom

答えて

0

私は十分だとは思わなかったようです。私はモデルを別の方法でフェッチするだけでした。

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