1. 程式人生 > >【Angular2】遍歷巢狀實體生成陣列

【Angular2】遍歷巢狀實體生成陣列

前言

需要根據實體生成一個數組,存放初始資料

實體是ExamPaperModel(試卷),其中一個屬性為QuestionTypeList,包含的是實體QuestionTypeModel(題型),題型實體中有一個屬性為QuestionMainList,包含的是實體QuestionMainModel(題幹)

現在整個試卷實體是從後臺返回,然後傳遞到該元件,該元件要在頁面渲染前生成陣列存放初始的題幹答題狀態

程式碼

answers:Answer[]=[]; //宣告一個空陣列,記得加後面的=[]
ngOnInit() {
    setTimeout(() => {
      this
.exampaper.paperQuestionTypeList.forEach((val, index, array) => { //val為當前值,index為當前索引,array為整個集合 (<PaperQuestionTypeModel>val).questionMainList.forEach((val, index, 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的其它機制實現了功能
但是,在生成陣列的過程中,遇到了一些問題,所以在此記錄一下