- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试创建这种 react 形式:
(o) Some radio button
( ) Another radio button
[ ] A nested checkbox, disabled as long "Another radio button" is not selected
[ ] Another checkbox, disabled as long "Another radio button" is not selected
复选框在上面显示的状态下被禁用。如果激活第二个单选按钮,也可以选中复选框。
我如何在 Angular.io 中使用 react 形式对其进行建模?可以将其视为具有以下值的单个控件:
另一种方法是它是一个 bool FormControl,但如果有一个值,则在下面添加另一个 FormControl,但我认为这是不可能的。
在响应式表单逻辑中建模的最佳方式是什么?
最佳答案
如果您的复选框选项是固定的,那么您可以为 ngOnInit 中的“另一个单选按钮”选项创建一个嵌套的 FormGroup
:
ngOnInit() {
this.form = this.fb.group({
radioGroup: '0',
ckBoxGroup2: this.fb.group({
ckBoxG2_1: { value: false, disabled: true },
ckBoxG2_2: { value: false, disabled: true },
})
});
然后在同一个 ngOnInit 方法中订阅单选按钮控件的 valueChange Observable。当然,还有其他应对变化的方式,但我喜欢这样:
this.form.get('radioGroup').valueChanges.subscribe(value => {
value === '2' ? this.form.get('ckBoxGroup2.ckBoxG2_1').enable() : this.form.get('ckBoxGroup2.ckBoxG2_1').disable();
value === '2' ? this.form.get('ckBoxGroup2.ckBoxG2_2').enable() : this.form.get('ckBoxGroup2.ckBoxG2_2').disable();
});
在模板中创建相同的结构:
<form [formGroup]=form>
<input type="radio" value="1" formControlName="radioGroup">Group 1<br />
<input type="radio" value="2" formControlName="radioGroup">Group 2
<div formGroupName="ckBoxGroup2" style="margin-left: 20px" >
<div>
<label>CheckBox 1
<input type="checkbox" formControlName="ckBoxG2_1">
</label>
</div>
<div>
<label>CheckBox 2
<input type="checkbox" formControlName="ckBoxG2_2">
</label>
</div>
</div>
</form>
查看我根据您的示例制作的演示:https://stackblitz.com/edit/angular-cfcznq
关于 Angular react 形式 : Nested Radio Buttons and Checkboxes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61592208/
我遇到过这个 html: 上面的html和这个有什么区别: 最佳答案 来自MDN page on the tag : 对于 type 的属性标签,可能的值是: 提交:按钮将表单数据提交给服务器
Button button= (Button) findViewbyID(R.id.button); 和 Button button = new Button(this); 有什么区别? 最佳答案 有
我是一名优秀的程序员,十分优秀!