【发布时间】:2019-10-14 13:05:39
【问题描述】:
我已将 formarray 值传递给角度材质对话框。但是在显示时我收到此错误:“找不到类型为 'object' 的不同支持对象 '[object Object]'。NgFor 仅支持绑定到 Iterables,例如 Array”
这是我的代码
openDialog() {
this.purchase_id = ("purchase" + new Date().toISOString())
for(let i=0 ;i<this.product.value.length; i++) {
let new_purchase : any = {
purchase_id : this.purchase_id,
quantity : this.product.value[i].product_quantity,
buyingprice : this.product.value[i].product_Buyingprice,
date : new Date(),
product_id : Number (this.product.value[i].product_name),
vendor_id : this.vendor_id,
totalprice : String (this.product.value[i].product_quantity * this.product.value[i].product_Buyingprice)
}
const dialogRef = this.dialog.open(ConfirmDialogComponent,{data : {purchase : new_purchase} })
dialogRef.afterClosed().subscribe(result => {
console.log(`result : ${result}`)
if(result == 'true') {
this.newPurchase()
}
})
}
}
对话 ts
`export class ConfirmDialogComponent implements OnInit {
private savedForLater : any;
constructor(
public containingDialog: MatDialogRef<ConfirmDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data : any) {
this.savedForLater = data;
console.log(this.savedForLater)
}
`
对话框html
<p>confirm-dialog works!</p>
<h2 mat-dialog-title>Details</h2>
<mat-dialog-content>
<div *ngFor = " let data of savedForLater">
{{savedForLater.quantity}}
</div>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-button mat-dialog-close mat-dialog-close = "false">log out</button>
<button mat-button mat-dialog-close mat-dialog-close = "true">login</button>
</mat-dialog-actions>
【问题讨论】:
-
savedForLater是否持有array数据?它似乎ngFor没有收到它可以迭代的数据。<div *ngFor = " let data of savedForLater"> {{savedForLater.quantity}} </div>这些声明对于角度来说没有意义
标签: angular angular-material angular-material2 angular8