Angular 垫对话不保存多个值

Angular mat dialogue not saving multiple values

我正在使用 Anular9 并使用 mat-raised-button 如下:

  <button mat-raised-button (click)="saveClick()" color="primary"><mat-icon>check</mat-icon>&nbsp;&nbsp;Ok</button>

saveClick()定义如下

saveClick() {
    for (let i = 0; i < this.hostid.length; i++) {
        const saudit: SInterface = {
            data: this.data,
            eid: this.eid[i],
            serverId: this.hostid[i]
        };
        this.subs.sink = this.sservice.addRecord(saudit)
            .subscribe(s => {
                this.dialog.close();
            });
    }

}

这里data是所有记录的共同点。

以上代码只保存第一条记录i=0。 如何更改 saveClick() 以便它保存所有记录直到 i < this.hostid.length?

H.

与其使用 for 循环,不如尝试使用 map,一旦你有了 saudits 数组,然后用它作为参数调用你的服务。

顺便说一句。将您对服务的调用移到循环/映射之外。

** 编辑 我不完全了解您的业务逻辑,但我至少会将该映射用作字符串点。

    // Map each Id in the hostid array to SInterface
    const saudits: SInterface = this.hostid.map((id, index) => {
      return {
        data: this.data,
        eid: this.eid[index],
        serverId: id,
      } as SInterface;
    });

    // Pass all saudits at once to service
    this.sservice.addRecord(saudits).subscribe(...);