我正在开发Angular 4项目我想从firebase中删除一个单击的行
以下是我的智能表代码
FluentWait<WebDriver>
onDelete()函数如下
<ng2-smart-table [settings]="settings" [source]="source" (edit)="onEdit($event)" (delete)="onDelete($event)">
</ng2-smart-table>
我在服务中编写了deleteEnquiry函数,如下所示
onDelete(event) {
console.log(event);
if (window.confirm('Are you sure you want to delete?')) {
this.service.deleteEnquiry(event.data);
} else {
event.confirm.reject();
}
}
但它对我不起作用,它显示我在控制台中出现以下错误
deleteEnquiry(data){
console.log(data);
this.af.list('/enquirydata/').remove(data);
}
任何帮助?
答案 0 :(得分:0)
试试这个
deleteEnquiry(data){
console.log(data.$key);
this.af.list(`/enquirydata/${data.$key}`).remove(data);
}
答案 1 :(得分:0)
由于您要传递事件对象,因此需要将event.value传递给服务
onDelete(event) {
console.log(event.value);
if (window.confirm('Are you sure you want to delete?')) {
this.service.deleteEnquiry(event.value);
} else {
event.confirm.reject();
}
}
更改您的服务
deleteEnquiry(data){
console.log(data.$key);
this.af.list(`/enquirydata/${data.$key}`).remove(data);
}
答案 2 :(得分:0)
另请查看此文档:https://github.com/angular/angularfire2/blob/master/docs/rtdb/lists.md
<强> snapshotChanges()强> 它是什么? - 作为同步数组返回一个Observable数据 AngularFireAction []。
你为什么要用它? - 当您需要数据列表但又想保留元数据时。元数据为您提供了underyling DatabaseReference和快照键。拥有快照键可以更轻松地使用数据操作方法。由于type属性,此方法可以为其他Angular集成提供更大的功能,例如ngrx,表单和动画。每个AngularFireAction上的type属性对ngrx reducers,form states和animation states都很有用。
你什么时候不用? - 当您需要比数组更复杂的数据结构时,或者您需要在发生更改时处理更改。此阵列与Firebase数据库中的远程和本地更改同步