我在Angular4中遇到ngModel的條件數據綁定問題。有條件的ngModel數據綁定
爲了解釋:
我有一點點的形式:
<form-question-radio
[(ngModel)]="model['q4']"
name="question"
[options]="[{value:true, label:'Yes'}, {value:false,label:'No'}]"
required>
Do you want?
</form-question-radio>
<ng-container *ngIf="model['q4'] == true">
<form-question-radio
[(ngModel)]="model['q4_1']"
name="question4_1"
[options]="[
{value:1,label:'Freedom'},
{value:2,label:'Peace'},
{value:3,label:'Money'}
]" required>
What do you want?
</form-question-radio>
</ng-container>
形式 - 問題 - 無線是我的自定義表單控件(實現ControlValueAccessor)
我想傳遞價值到模型['q4_1']只有當第一個問題的答案有true值。如果回答第一個問題(model ['q4'])具有false,model ['q4_1']將會是null。
當我檢查第一個問題的真實答案時,問題開始,之後檢查第二個問題的一些答案,我再次檢查第一個問題的錯誤anwer。我希望模型['q4_1']值爲null,但不是。
我試圖使用條件樣結合:
[(ngModel)]="model['q4'] == true ? model['q4_1'] : null"
,但它造成的錯誤。
我試圖
[(ngModel)]="model['q4'] && model['q4_1']"
了。但它仍然不起作用,因爲我猜想返回布爾值。是嗎?
問: 有沒有辦法有條件通過數據綁定ngModel?它應該是什麼樣子?
它不適合我的解決方案。當我改變q4_1時它仍然在變化,但是當q4爲false/true時我必須改變q4_1的值。我可以理解您的解決方案如何工作,但我在尋找通用解決方案,如果您知道我的意思 –
那麼,您可以使用另一個問題Q4Change事件,並且在這種情況下,您可以設置q4新值,並且如果需要, q4_1值。 – Senthe
我用setter添加了另一個解決方案,但我認爲它更復雜。 – Senthe