【发布时间】:2018-11-02 18:10:42
【问题描述】:
我正在使用带有 Angular 的 PrimeNG DataTable 并尝试实现类似于 StackBlitz 的东西,但我有两个问题:
-
我正在成功加载表格,一旦我单击网格函数 editRow(row) 上的编辑按钮,它就会失败,原因是(见下面的粗体字)
this.iToDoList.filter(row => row.isEditable).map(r => { r.isEditable = false; return r })
错误:类型 iToDoList 上不存在属性 isEditable
- 如何向表中添加(内联)记录,例如添加注释?
HTML
<p-table #dt [value]="iToDoList" dataKey="ID" [paginator]="true" [rowsPerPageOptions]="[10,50,100]"
[rows]="10">
<ng-template pTemplate="header">
<tr>
<th>ID</th>
<th>Comment</th>
<th>Action</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-row>
<tr>
<td>{{row.ID}}</td>
<td>
<div *ngIf="!row.isEditable">{{row.Comment}}</div>
<div *ngIf="row.isEditable">
<input type="text" [(ngModel)]="row.comment">
</div>
</td>
<td><button (click)="editRow(row)">Edit</button></td>
<td> <button (click)="save(row)">Save</button></td>
</tr>
</ng-template>
</p-table>
界面
export interface IToDoList {
ID: number,
Comment: string
}
component.ts
iToDoList: IToDoList[] = null;
ngOnInit(): void {
//this is loading the table successfully
this.GetToDoList(this.userID);
}
GetToDoList(ID: string) {
this._dashboardService.getToDoList(ID)
.subscribe(
data => {
this.iToDoList = data.result;
data.map(row => {
row.isEditable = false;
});
},
error => console.log('GetControls Method: ' + <any>error, 'alert alert-danger'));
}
//issue is here
editRow(row) {
console.log("row " + row.ID)
this.iToDoList.filter(row => row.isEditable).map(r => { r.isEditable = false; return r })
row.isEditable = true;
}
**************************************************** ****更新********************************************* ******* 我通过将界面更改为来解决了我的第一个问题
export interface IToDoList {
ID: number,
Comment: string,
isEditable: boolean
}
现在我的第二个问题,如何添加内联记录?
【问题讨论】:
-
我修复了我的第一个问题..查看我更新的代码部分...只是第二个问题
-
错误标记。请改正
-
第二个问题,你想要一个表格外的按钮,如果你点击它,它应该在表格的末尾添加一行,就这样?
-
是的,表格外的按钮可以使用
标签: angular typescript primeng primeng-datatable