Angular - 无法绑定属性,因为它不是“div”的已知属性
Posted
技术标签:
【中文标题】Angular - 无法绑定属性,因为它不是“div”的已知属性【英文标题】:Angular - Can't bind property since it isn't a known property of 'div' 【发布时间】:2019-11-04 11:38:52 【问题描述】:我有一个对象列表,通过单击其中一个,我需要打开一个模式并显示该对象的一些属性。
我的代码如下所示:
对象组件:
export class VendorComponent implements OnInit
@Input() currentVendor: Vendor;
vendors: Vendor[];
constructor(public actRoute: ActivatedRoute,
public router: Router,
private vendorService: VendorService,
private modalHandlerService: ModalHandlerService)
ngOnInit()
this.GetAll();
GetAll()
this.vendorService.getVendors().subscribe((data: Vendor[]) =>
this.vendors = data;
);
openVendorDetailsModal()
this.modalHandlerService.openVendorDetailsModal(this.currentVendor);
点击openVendorDetailsModal
时,我需要打开一个带有详细信息的模式,我的视图如下所示:
<table>
<tr>
<th>Id</th>
<th>Name</th>
</tr>
<div *ngFor="let vendor of vendors" [currentVendor]= "vendor" (click)="openVendorDetailsModal(vendor)">
<tr>
<td>vendor.Id</td>
<td>vendor.Name</td>
</tr>
</div>
</table>
问题是视图上的[currentVendor]= "vendor"
语法正在返回标题中提到的错误。如何将当前供应商绑定到组件,以便我可以将其作为方法的参数发送?
【问题讨论】:
移除[currentVendor]
并在组件处接收您的 openVendor...
中的供应商
我试过了,但是在组件上输入属性是未定义的,所以模态显示为空
【参考方案1】:
只需通过 openVendorDetailsModal 方法传递供应商
<div *ngFor="let vendor of vendors" (click)="openVendorDetailsModal(vendor)">
<tr>
<td>vendor.Id</td>
<td>vendor.Name</td>
</tr>
</div>
你可以使用供应商参数
openVendorDetailsModal(vender)
this.modalHandlerService.openVendorDetailsModal(vender);
如果你想保存传递的 vernder 的引用,请在方法的主体中设置curentVender
openVendorDetailsModal(v)
this.currentVendor = v;
this.modalHandlerService.openVendorDetailsModal(v);
【讨论】:
【参考方案2】:我的意思是这样做:
openVendorDetailsModal(vendor)
this.modalHandlerService.openVendorDetailsModal(vendor);
在模板中删除 [currentVendor]
并继续将 vendo 传递给 openVendorDetailsModal
。希望对您有所帮助。
【讨论】:
我让你检查了vendors
中的内容?以上是关于Angular - 无法绑定属性,因为它不是“div”的已知属性的主要内容,如果未能解决你的问题,请参考以下文章
Angular 7 无法绑定到“routerlink”,因为它不是“a”的已知属性
无法绑定到“gridOptions”,因为它不是“ag-grid-angular”的已知属性
Angular 2 - 无法绑定到“ngModel”,因为它不是“输入”的已知属性
Angular 2 错误:无法绑定到“innerhtml”,因为它不是已知的本机属性