У меня проблема с условной привязкой данных ngModel в Angular4.
Объяснять:
У меня небольшая форма:
<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)
Я хотел бы передать значение в model ['q4_1'] только тогда, когда ответ на первый вопрос имеет значение true. Если ответ на первый вопрос (model ['q4']) имеет false, model ['q4_1'] будет нулевым.
Проблема начинается, когда я проверяю истинный ответ на первый вопрос, затем проверяю какой-нибудь ответ на второй вопрос, и я проверяю (снова) ложный ответ на первый вопрос. Я бы хотел, чтобы значение model ['q4_1'] было равно null, но это не так.
Я пытался использовать условную привязку, например:
[(ngModel)]="model['q4'] == true ? model['q4_1'] : null"
но это вызвало ошибку.
я пытался
[(ngModel)]="model['q4'] && model['q4_1']"
слишком. Но это все равно не работает, потому что, я думаю, возвращает логическое значение. Это?
Вопрос: Есть ли способ условной привязки данных с помощью ngModel? Как это должно выглядеть?