前言
需要根据实体生成一个数组,存放初始数据
实体是ExamPaperModel(试卷),其中一个属性为QuestionTypeList,包含的是实体QuestionTypeModel(题型),题型实体中有一个属性为QuestionMainList,包含的是实体QuestionMainModel(题干)
现在整个试卷实体是从后台返回,然后传递到该组件,该组件要在页面渲染前生成数组存放初始的题干答题状态
代码
answers:Answer[]=[]; //声明一个空数组,记得加后面的=[]
ngOnInit() {
setTimeout(() => { this.exampaper.paperQuestionTypeList.forEach((val,index,array) => { //val为当前值,index为当前索引,array为整个集合 (<PaperQuestionTypeModel>val).questionMainList.forEach((val,array) => { //声明一个answer对象存放初始值 let answer = new Answer; answer.id = (<QuestionMainModel>val).id; answer.done = true; answer.answer = ""; this.answers[index] = answer; }) }) },0); }
在这里最好把代码放在setTimeout,否则会报一个 Cannot read property ‘paperQuestionTypeList’ of undefined 的错误
小结
最后没有用这个解决方案,利用Angular的其它机制实现了功能 但是,在生成数组的过程中,遇到了一些问题,所以在此记录一下