下面的代码显示了我的创建列表方法、HTML 和删除方法。我正在努力使删除方法起作用。我收到错误“删除未定义”?我不确定是否必须在删除方法中添加 $key?
//Delete method, this is the method I am struggling. i want a user to be able to delete the list item on slide
deleteList(list) {
list.remove(list);
}
//HTML
<ion-list>
<ion-item-sliding *ngFor="let list of list" >
<ion-item>
<p>An item:
<strong>{{list.list1}}</strong>
</p>
<p>Oooooh is this important:
<strong>{{list.list2}}</strong>
</p>
<p>Another item:
<strong>{{list.list3}}</strong>
</p>
</ion-item>
<ion-item-options side="left">
<button ion-button color="danger" (click)="deleteList(list.$key)">
<ion-icon name="md-trash">Delete</ion-icon>
</button>
</ion-item-options>
</ion-item-sliding>
</ion-list>
//Create list
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.listRef = firebase
.database()
.ref(`/userProfile/${user.uid}/List`);
}
});
}
createList(
list1: string,
list2: string,
list3: string
): ThenableReference {
return this.listRef.push({
list1: list1,
list2: list2,
list3: list3,
});
}
您的代码中有一些错误。您可能想使用 *ngFor="let list of lists" // 列表是您要在其上使用循环的数组或集合,而列表只是一个引用(您可以使用任何) 列表集合中存在的项目
第二个错误是,在删除函数中,您应该使用您用来引用您的 firebase 数据库的引用,在您的情况下,您应该使用 this.listRef 而不是 list
删除你可以使用这样的东西(假设你的列表中有键(firebase键))
<ion-item-options side="left">
<button ion-button color="danger" (click)="deleteList(list.$key)">
<ion-icon name="md-trash">Delete</ion-icon>
</button>
</ion-item-options>
始终建议为这些操作使用服务,因为您将在一个中心位置拥有所有与 Firebase 相关的操作和参考,并且您可以从任何页面轻松使用它。
删除数据的最简单方法是调用 remove() 对该数据位置的引用(来自 firebase docs),以便您可以使用它从 firebase 存储中删除所选项目:
您可以从以下位置获取经过身份验证的用户或当前登录的用户:
import { User } from 'firebase/app'; // import user from firebase
authenticatedUser: User; //declare variable authenticatedUser as type User
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.authenticatedUser = user;
}
然后删除:
deleteList(key) {
firebase
.database()
.ref(`/userProfile/${this.authenticatedUser.uid}/List/${key}`).remove()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句