相关疑难解决方法(0)

Angular:复合ControlValueAccessor实现嵌套形式

Angular Connect 2017 演示中介绍了用于实现嵌套表单的 ControlValueAccessor 组合。

https://docs.google.com/presentation/d/e/2PACX-1vTS20UdnMGqA3ecrv7ww_7CDKQM8VgdH2tbHl94aXgEsYQ2cyjq62ydU3e3ZF_BaQ64kMyQa0INe2oI/pub?slide=id.g293d7d2b9d_1_1532

在本次演示中,演讲者展示了一种实现具有多个值的自定义表单控件的方法(不仅是单个字符串值,而且有两个字符串字段,如街道和城市)。我想实施它,但我被困住了。示例应用程序在这里,有人知道我应该纠正什么吗?

https://stackblitz.com/edit/angular-h2ehwx

父组件

@Component({
  selector: 'my-app',
  template: `
    <h1>Form</h1>
    <form [formGroup]="form" (ngSubmit)="onSubmit(form.value)" novalidate>
      <label>name</label>
      <input formControlName="name">
      <app-address-form formControlName="address"></app-address-form>
      <button>submit</button>
    </form>
  `,
})
export class AppComponent  {
  @Input() name: string;
  submitData = '';
  form: FormGroup;

  constructor(private fb: FormBuilder) {
    this.form = fb.group({
      name: 'foo bar',
      address: fb.group({
        city: 'baz',
        town: 'qux',
      })
    });
  }

  onSubmit(v: any) {
    console.log(v);
  }
}
Run Code Online (Sandbox Code Playgroud)

嵌套表单组件

@Component({
  selector: 'app-address-form',
  template: `
    <div [formGroup]="form">
      <label>city</label>
      <input formControlName="city" (blur)="onTouched()">
      <label>town</label>
      <input …
Run Code Online (Sandbox Code Playgroud)

forms angular

5
推荐指数
1
解决办法
5204
查看次数

标签 统计

angular ×1

forms ×1