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> 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(...);
我正在使用 Anular9
并使用 mat-raised-button
如下:
<button mat-raised-button (click)="saveClick()" color="primary"><mat-icon>check</mat-icon> 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(...);