我有一个数据网格,用于填充Firebase Cloudstore中的数据(根据Firebase的lastUpdated日期排序),当我编辑行时,我有模式对话框可以编辑信息,保存条目时将lastUpdated设置为sysdate 。编辑工作正常(并且时间戳已更新),但是从表中选择了错误的行。在表中,我有一列是Firebase的documentId。为了验证它选择了错误的documentId,然后控制台记录传递给edit方法的documentId,它与我在视图中选择进行编辑的行上的ID不同。 我的代码与下面的代码完全一样(摘自清除文档)。我在做什么错了?
<clr-dg-row *clrDgItems="let user of users" [clrDgItem]="user">
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
<-- ... -->
</clr-dg-row>
答案 0 :(得分:0)
您在这里遇到了一些结构问题。
首先,模式应该是顶层的,而不是在Datagrid内部。基本上,这将导致显示最后定义的模态(具有相同的clrModalOpen
绑定),而不显示其他模态。
第二,单击记录未通过或未设置有关您选择哪一行的任何状态。因此,您的表单不知道正在编辑哪一行,并且您的模型是未定义的。
模态输出connection.id
的原因是您在存在connection
局部变量的datagrid行本身的内联中定义了它。但是,您必须将其传递给模式,因为它必须位于数据网格本身之外。
请参见https://stackblitz.com/edit/angular-azbaxr?file=src%2Fapp%2Fapp.component.html