【发布时间】:2023-03-19 18:57:01
【问题描述】:
我的示例表单(ControlGroup)包含 2 个控件,它们绑定到 2 个输入字段。由于 ControlGroup 具有“已触摸”属性,因此我希望当它的至少一个子控件已被“触摸”时,该属性将设置为 true。 但这种情况并非如此。 ControlGroup 的属性“touched”仍设置为 false,即使它的其中一个子控件已被触摸。 对于“有效”属性,这可以按预期工作。 我的期望错了吗?
我正在使用 2.0.0-beta.14
我的示例组件:
import {Component} from 'angular2/core';
import {ControlGroup, FormBuilder, Validators} from 'angular2/common';
@Component({
selector: 'form-group-example',
template: `
<h1>Angular 2 Control & Control Group example</h1>
<form [ngFormModel]="form" (ngSubmit)="onSubmit()">
<label for="firstname">Vorname</label>
<input id="firstname" ngControl="firstname"/>
<label for="lastname">Nachname</label>
<input id="lastname" ngControl="lastname"/>
<button type="submit">Submit</button>
</form>
`
})
export class FormGroupExample {
form: ControlGroup;
constructor(fb: FormBuilder) {
this.form = fb.group(
{
firstname: ['', Validators.maxLength(1)],
lastname: [''],
}
);
}
onSubmit(): void {
console.log("form touched", this.form.touched);
console.log("form valid", this.form.valid);
}
}
【问题讨论】:
-
我在添加到stackoverflow.com/a/36591194/217408
pristine的 Plunker 中也遇到了同样的情况,但touched没有。touched通过 plnkr.co/edit/mFlGI8?p=preview 在控件上工作