2017-11-06 1 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(); }); 
} 
관련 문제