我在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