Ionicv2 Angularfire2 v5 我无法通过推送创建新项目
Ionicv2 Angularfire2 v5 I cant create new items with push
我有一个离子应用程序,我刚刚更新到新的 angularfire2 版本 5,其中删除了 FirebaseListObservable。
现在我这样初始化:
items: Observable<any>;
constructor(public navCtrl: NavController, public alertCtrl: AlertController, af: AngularFireDatabase, public actionSheetCtrl: ActionSheetController) {
this.items = af.list('/items').valueChanges();
}
在删除 FirebaseListObservable 之前我只做了
items: FirebaseListObservable<any>;
在我使用离子 Actionsheet 处理程序创建新项目并将其推送到数据库节点之前:
addItem(){
let prompt = this.alertCtrl.create({
title: 'Name',
message: "",
inputs: [
{
name: 'title',
placeholder: 'Name'
},
],
buttons: [
{
text: 'Cancel',
handler: data => {
}
},
{
text: 'Save',
handler: data => {
this.items.push({
title: data.title
});
}
}
]
});
prompt.present();}
但是"this.items.push({"功能已经失效了。如何再次将新项目推送到数据库?
在使用 FirebaseListObservable 之前没有问题。
我现在收到的错误消息是:
_this.items.push 不是函数
但不知何故我没有找到它的替代品。
fyi:我不太擅长观察和响应。所以如果问题在那里,请详细告诉我。
您缺少 angularfire2 语法。 af.list('/items').valueChanges()
returns Observable<{}[]>
而不是 FirebaseListObservable<any>
.
所以请尝试以下操作:
items: Observable<any>;
itemsRef: AngularFireList<{}>;
constructor(public navCtrl: NavController, public alertCtrl: AlertController, af: AngularFireDatabase, public actionSheetCtrl: ActionSheetController) {
this.itemsRef = af.list('/items');
this.items = this.itemsRef.valueChanges();
}
然后请更新添加部分,
addItem(){
let prompt = this.alertCtrl.create({
title: 'Name',
message: "",
inputs: [
{
name: 'title',
placeholder: 'Name'
},
],
buttons: [
{
text: 'Cancel',
handler: data => {
}
},
{
text: 'Save',
handler: data => {
this.itemsRef.push({
title: data.title
});
}
}
]
});
prompt.present();
}
我建议您多阅读这篇文章 angularfire2 guide。祝你好运。
我有一个离子应用程序,我刚刚更新到新的 angularfire2 版本 5,其中删除了 FirebaseListObservable。
现在我这样初始化:
items: Observable<any>;
constructor(public navCtrl: NavController, public alertCtrl: AlertController, af: AngularFireDatabase, public actionSheetCtrl: ActionSheetController) {
this.items = af.list('/items').valueChanges();
}
在删除 FirebaseListObservable 之前我只做了
items: FirebaseListObservable<any>;
在我使用离子 Actionsheet 处理程序创建新项目并将其推送到数据库节点之前:
addItem(){
let prompt = this.alertCtrl.create({
title: 'Name',
message: "",
inputs: [
{
name: 'title',
placeholder: 'Name'
},
],
buttons: [
{
text: 'Cancel',
handler: data => {
}
},
{
text: 'Save',
handler: data => {
this.items.push({
title: data.title
});
}
}
]
});
prompt.present();}
但是"this.items.push({"功能已经失效了。如何再次将新项目推送到数据库?
在使用 FirebaseListObservable 之前没有问题。 我现在收到的错误消息是: _this.items.push 不是函数
但不知何故我没有找到它的替代品。
fyi:我不太擅长观察和响应。所以如果问题在那里,请详细告诉我。
您缺少 angularfire2 语法。 af.list('/items').valueChanges()
returns Observable<{}[]>
而不是 FirebaseListObservable<any>
.
所以请尝试以下操作:
items: Observable<any>;
itemsRef: AngularFireList<{}>;
constructor(public navCtrl: NavController, public alertCtrl: AlertController, af: AngularFireDatabase, public actionSheetCtrl: ActionSheetController) {
this.itemsRef = af.list('/items');
this.items = this.itemsRef.valueChanges();
}
然后请更新添加部分,
addItem(){
let prompt = this.alertCtrl.create({
title: 'Name',
message: "",
inputs: [
{
name: 'title',
placeholder: 'Name'
},
],
buttons: [
{
text: 'Cancel',
handler: data => {
}
},
{
text: 'Save',
handler: data => {
this.itemsRef.push({
title: data.title
});
}
}
]
});
prompt.present();
}
我建议您多阅读这篇文章 angularfire2 guide。祝你好运。