【发布时间】:2018-03-15 19:10:48
【问题描述】:
我遇到了 Angular4 中 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>
form-question-radio 是我的自定义表单控件(实现 ControlValueAccessor)
仅当第一个问题的答案具有 true 值时,我想将值传递给 model['q4_1']。如果第一个问题 (model['q4']) 的答案为 false,则 model['q4_1'] 将为 null。
当我检查第一个问题的正确答案时,问题就开始了,然后检查第二个问题的一些答案,然后我(再次)检查第一个问题的错误答案。我希望 model['q4_1'] 值等于 null,但不是。
我正在尝试使用条件绑定,例如:
[(ngModel)]="model['q4'] == true ? model['q4_1'] : null"
但它导致了错误。
我在尝试
[(ngModel)]="model['q4'] && model['q4_1']"
也是。但它仍然不起作用,因为我猜是返回布尔值。是吗?
问题: 有没有办法通过 ngModel 进行条件数据绑定?它应该是什么样子?
【问题讨论】:
标签: angular angular-ngmodel angular-forms