情況:
有ABCD 4種考卷
每個考卷有10題題目
所以有40個欄位
一次只會填一種考卷
然後填完後立刻在下方根據卷別算出分數
--------------
想法:
如果用最單純的寫法
就是每個reactive form 都subscribe valueChanges
然後觸發算分數function
用 if 正確答案,回傳分數,非正確答案回傳0分
然後再加總。
--------------
想要達成的是
ABCD卷選項欄位 questionType
有一個可以維護的答案陣列
[‘D’,‘D’,‘A’,‘B’,‘C’…]
欄位陣列
A卷 [‘qusA0010’,‘qusA0020’…]
B卷 [‘qusB0010’,‘qusB0020’…]
然後欄位有enum ,答案A是a1,答案B是a2
所以還要再轉一層變成ABCD或是a1a2a3a4
選項選A卷,
questionType 就發出訊號變動
或是formgroup裡面答案值變動
通知計算分數的function
再計算分數
--------------
所以覺得我這樣寫法很不聰明
--------------
想改進地方
1.
感覺reactive form 40個欄位一直再打電話問欄位變了沒有
有辦法訂閱整個formgroup
然後裡面欄位值有變動再發布所有通知給大家說要變動了嗎???
或是有沒有一個發訊號的trigger讓欄位要是變就通知大家要做事
--------------
用 if 判斷答案維護很耗時間
想要直接維護答案陣列就好
像是
qusTypeAAnswer=[‘D’,‘D’,‘A’,‘B’,‘C’…]
然後答案欄位是個Object
A卷 {qusA0010=‘a1’,qusA0020=‘a2’,…}
B卷 {qusB0010=‘a2’,qusB0020=‘a3’,…}
這個對於很少在刷leetCode的我來說有難度 Q口Q
--------------
有大大給方向或是答案嗎