angular - 从 PrimeNG 数据表中获取数据
问题描述
我想启用的功能有点问题。当用户进行搜索时,它会用结果填充一个表。我希望他们能够删除"Delete"
按钮所在的那一行。
我console.logs
没有显示任何东西是从桌子上抓的,除了
MouseEvent {isTrusted: true, screenX: 81, screenY: 615, clientX: 81, clientY: 524, …}
并且我的 API 显示了null
它应该接收删除的对象。对此有任何指示吗?我有点迷茫,两个小时的研究对我来说似乎没有成果。
谢谢
解决方案
这是因为您将两个参数传递给onDelete($event, tech)
模板中的方法,但在 component 中只定义了一个参数onDelete(value: any)
。所以值被设置为$event
在这种情况下是 aMouseEvent
因为按钮绑定到click
事件。
从文档$event 和事件处理语句:
事件对象的形状由目标事件决定。如果目标事件是原生 DOM 元素事件,那么 $event 就是一个 DOM 事件对象,具有 target 和 target.value 等属性。
如果您不需要对象中的信息,请将其从模板中$event
的调用中删除。onDelete()
<p-column header="Action">
<ng-template let-tech="rowData" pTemplate="body">
<button type="text" pButton label="Delete" (click)="onDelete(tech)"></button>
</ng-template>
</p-column>
然后onDelete()
组件中的方法会获取表格行的值。
public onDelete(value: Tech) {
console.log(value);
this.tableService.deleteRegistrant(value)
.subscribe(
value => {
console.log('[POST] create Registrant successfully', value);
}, error => {
console.log('FAIL to create Registrants!');
},
() => {
console.log('POST Registrants - now completed.');
});
this.submitted = true;
}
推荐阅读
- hive - 在 Hive 中获取过去 7 天的记录
- arrays - Swift - 排序和分离字典数组
- python - 在 Django Rosetta 中看不到我的项目字符串
- hyperledger-fabric - Unable to join channel on Hyperleger Fabric
- aws-api-gateway - AWS API Gateway - 自定义域名收益
- ios - Arkit 1.5 中的 ARKit Remote 是否有任何改进?
- scala - 如何在 Gatling 脚本上捕获“HTTP 响应”?
- gulp - BrowserSync 不刷新 HTML 文件
- passwords - pwgen - 限制特殊字符
- javascript - 异步管道 - 重新分配时数据未定义