Я создаю динамическую форму на основе Динамических форм Angular 4.
Все отлично получается! Однако у меня возникла проблема с выпадающим списком. Я хотел бы иметь зависимый выпадающий список. Когда пользователь выбирает значение в раскрывающемся списке, он отображает флажки на основе атрибута — возможно, name
.
сервис
new DropdownInput({
key: 'dropdown',
label: 'Dropdown Testing',
options: [
{key: 'example1', value: 'Example 1'},
{key: 'example2', value: 'Example 2'}
],
order: 1
}),
new CheckboxInput({
key: 'checkbox1',
label: 'checkbox1 - example1',
name: 'example1',
order: 2
}),
new CheckboxInput({
key: 'checkbox2',
label: 'checkbox2 - example1',
name: 'example1',
order: 3
}),
new CheckboxInput({
key: 'checkbox3',
label: 'checkbox3 - example2',
name: 'example2',
order: 4
}),
new CheckboxInput({
key: 'checkbox4',
label: 'checkbox4 - example2',
name: 'example2',
order: 5
})
html
<!-- CHECKBOX -->
<div class="col-xs-12" *ngSwitchCase="'checkbox'">
<input class="form-check-input"
type="checkbox"
[formControlName]="input.key"
[id]="input.key"
[name]="input.name">
<label class="control-label"
[attr.for]="input.key">{{input.label}}</label>
<a class="info-tooltip"><i class="fa fa-question-circle" aria-hidden="true"></i></a>
<span class="help-block"
*ngIf="!isValid">{{inputError}}</span>
</div>
<!-- DROPDOWN -->
<div class="col-xs-12" *ngSwitchCase="'dropdown'">
<label class="control-label"
[attr.for]="input.key">{{input.label}}</label>
<a class="info-tooltip"><i class="fa fa-question-circle" aria-hidden="true"></i></a>
<span class="help-block"
*ngIf="!isValid">{{inputError}}</span>
<select [id]="input.key"
[formControlName]="input.key">
<option *ngFor="let opt of input.options"
[value]="opt.key">{{opt.value}}</option>
</select>
</div>
Итак, в этом примере, если пользователь нажмет на Пример 1, я бы хотел отображать только флажки 1 и 2. Возможно ли это? Должен ли я форматировать данные по-другому?
Примечание 1. Я нашел ссылку о том, как перейти от зависимого раскрывающегося списка к другому (Динамические формы Angular 2: как создать зависимый раскрывающийся список), но не знаете, как эффективно использовать его с флажками.
Примечание 2. Причина, по которой мой флажок отделен от текстового поля (не показано), заключается в том, как они отображаются визуально в приложении. Я знаю, что могу объединить их для получения менее/более эффективного кода.