改變訂閱問題及考卷對答案問題

情況:
有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
--------------
有大大給方向或是答案嗎

至少將你現在有的程式碼最小可呈現的程度放到 stackblitz 上
你的問題我看了三遍還抓不到你想要問的問題