我正在使用AngularFire2作爲Ionic 2的提供者。我正在製作一個基本列表應用程序。以下是我在Firebase中的數據。Ionic 2&Angularfire2 + Firebase
{
"Checklists" : {
"0" : {
"title" : "new List"
},
"-KYHODAYcQ4OKMAzcXSG" : {
"items" : [ {
"checked" : "false",
"title" : "Milk"
} ],
"title" : "Newest List"
},
"-KYHS654NUHiwkexMwhL" : {
"items" : [ {
"checked" : "false",
"title" : "asdfadf"
} ],
"title" : "ddddd"
}
}
}
我有這一切拉好在我的家庭觀點和更新每個清單沒有問題的標題。我在我的數據提供者類中使用此代碼檢索數據,然後在我的home.ts
中調用它。順便說一句,這很好。
this.checklists = angFire.database.list('/Checklists');
當我導航到我的應用程序中的新視圖時,問題出現了。因此,我使用此代碼移動到清單項目視圖並傳遞當前清單。
this.checklist = this.navParams.get('checklist');
所以現在,在清單項來看,我把目前的檢查表的參考與標題,如果清單有這些項目一起。如果我已經在Firebase中使用它們,則此工作正常。
問題是如何將項目或項目數組添加到其中一個清單(如果它不存在於Firebase中)。我可以這樣做,在該視圖現在沒有問題,
if(this.checklist.items && this.checklist.items.length > 0){
this.checklist.items.push({title: data.name, checked:"false"});
}else{
this.checklist.items = [{title: data.name, checked:"false"}];
console.log(this.checklist);
}
這是當我想將它更新到,我遇到一個問題火力地堡。我可以通過在我的數據提供程序中執行此操作來使用初始數組項目更新一個清單。
this.checklists.update(id, {items: [
{
title: itemTitle,
checked: "false"
}
]});
但是這會覆蓋已經存在的任何東西。
我需要獲得對當前清單的引用,看看是否有一個項目數組,但我找不到任何文檔。我試過裁判,但那不行。任何幫助都會很棒。謝謝。