【发布时间】:2018-06-25 15:27:20
【问题描述】:
我正在创建一个基于Angular 4 Dynamic Forms 的动态表单。
一切都很顺利!但是,我遇到了下拉问题。我想要一个依赖下拉列表。当用户在下拉列表中选择一个值时,它将根据一个属性显示复选框 - 可能是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 Dynamic Forms: How to create dependent dropdown ) 的链接,但不知道如何有效地使用复选框。
注意 2:我的复选框与文本框(未显示)分开的原因是它们在应用程序中的可视化显示方式。我知道我可以将它们组合起来以获得更少/更高效的代码。
【问题讨论】:
标签: angular forms typescript dynamic angular-forms