【问题标题】:Set initial value in Mat-Autocomplete formArray在 Mat-Autocomplete formArray 中设置初始值
【发布时间】:2021-09-24 09:30:22
【问题描述】:

我有一个 formArray,它是一个列表,您可以在其中添加、编辑和删除。一切正常,但我想为前两个项目设置初始值。它适用于输入值,但我的 mat-autocomplete 填充不正确。这是stackblitz

.TS 文件

  initItems() {
    var formArray = this.fb.array([]);

    for (let i = 0; i < 2; i++) {
      formArray.push(
        this.fb.group({
          unititem: ['syed', [Validators.required]],
          age: ['14', [Validators.required]]
        })
      );
    }
    return formArray;
  }
 

【问题讨论】:

    标签: angular forms angular-material formarray mat-autocomplete


    【解决方案1】:

    您需要使用以下对象选项初始化unititem

    for (let i = 0; i < 2; i++) {
      formArray.push(
        this.fb.group({
          unititem: [this.options[0], [Validators.required]],
          age: ['14', [Validators.required]]
        })
      );
    }
    

    根据评论更新:

    你可以在你的对象数组中找到名字

    for (let i = 0; i < 2; i++) {
      formArray.push(
        this.fb.group({
          this.options.find(({ itemName }) => itemName === 'syed'),
          age: ['14', [Validators.required]]
        })
      );
    }
    

    【讨论】:

    • 这适用于这个例子,但它保存的数据是你试图填充的。如果你只知道名字,你怎么知道使用哪个选项
    • 谢谢,这是唯一的方法。我在网上找到了这个例子,但我真正的问题是下拉菜单来自一个在你输入时过滤的服务。
    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 2019-01-04
    • 2018-08-07
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多