相关疑难解决方法(0)

具有嵌套表单数组的角度反应表单

我是Angular 2的新手,并决定学习最好的方法是通过Angular官方指南.

我浏览了反应表单指南 https://angular.io/guide/reactive-forms

演示链接:https://stackblitz.com/angular/jammvmbrpxle

虽然内容总体来说非常好,但我仍然坚持如何实现更复杂的表单.在给定的示例中,每个Hero都有可能存在许多地址.地址本身就是一个扁平的对象.

如果地址有其他信息,例如位于地址的房间的颜色和类型,该怎么办?

export class Address {
    street = '';
    city   = '';
    state  = '';
    zip    = '';
    rooms = Room[];
}

export class Room {
     type = '';
}
Run Code Online (Sandbox Code Playgroud)

这样表单模型看起来像这样......

createForm() {
this.heroForm = this.fb.group({
  name: '',
  secretLairs: this.fb.array([
      this.fb.group({
          street: '',
          city: '',
          state: '',
          zip: '',
          rooms: this.fb.array([
              this.fb.group({
                 type: ''
          })]),
      })]),
  power: '',
  sidekick: ''
});
Run Code Online (Sandbox Code Playgroud)

}

编辑 - 与ngOnChanges一起使用的最终代码

英雄detail.component.ts

createForm() {
    this.heroForm = this.fb.group({
      name: …
Run Code Online (Sandbox Code Playgroud)

angular formarray

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

角度为 4 的 formArray 内的 Formarray

我正在尝试在 formarray 中实现 formarray 但它不起作用,下面也尝试过但不起作用。

当FormArray嵌套在另一个FormArray中时如何获取FormArrayName?

有人可以帮助我在下面的代码中我做错了什么

HTML

<div [formGroup]="MainFormGroup" class="custom-auto-complete">
  <mat-radio-group matInput formControlName="Applies">
    <mat-radio-button *ngFor="let applie of applies" [value]="applie.id">{{applie.value}}</mat-radio-button>
  </mat-radio-group>           
  <div formArrayName="FormArrayOne">
    <div *ngFor="let mains of MainFormGroup.get('FormArrayOne')['controls']; let i=index">
      <div [formGroupName]="i">
        <mat-icon *ngIf="MainFormGroup.get('FormArrayOne').length > 1" (click)="removeMarket(i)">remove_circle</mat-icon>
        <mat-icon (click)="addOne()"> add_circle</mat-icon>
        <mat-form-field>
          <input matInput formControlName="OneField" value="">
        </mat-form-field>
        <div formArrayName="FormArrayTwo">
          <div *ngFor="let Market of MainFormGroup.get('FormArrayTwo')['controls']; let j=index" >
            <div [formGroupName]="j">            
              <mat-form-field class="formfieldsControl">
                <input matInput formControlName="Destination">
              </mat-form-field>
            </div>
          </div>
        </div>         
      </div>
    </div>
  </div>    
</div>
Run Code Online (Sandbox Code Playgroud)

TS

public ngOnInit() {
  this.MaintFormGroup = this._fb.group({
    Applies : …
Run Code Online (Sandbox Code Playgroud)

typescript angular

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×2

formarray ×1

typescript ×1