2016-05-09 64 views
1

當前我有一個硬編碼的url數組來接收html中的圖像。如何在Json數組中存儲firebase響應

$scope.product = { 
    "images" : [ 
    {"image": "https://s3-us-west-2.amazonaws.com/s.cdpn.io/194929/colorburst-700x700.jpg"}, 
    {"image": "https://s3-us-west-2.amazonaws.com/s.cdpn.io/194929/colorburst-700x700.jpg"}, 
    {"image": "https://s3-us-west-2.amazonaws.com/s.cdpn.io/194929/colorburst-700x700.jpg"} 

    ] }; 

我只是學會了如何從數據庫中收到的數據,但我怎麼結果存儲在一個JSON數組喜歡的是在「$ scope.product」

我目前正在接受所示數據通過

// Get a reference to our posts 
var ref = new Firebase("https://<database>.firebaseio.com/profile"); 
// Retrieve new posts as they are added to our database 
ref.on("child_added", function(snapshot, prevChildKey) { 
    var newPost = snapshot.val(); 
    debugger; 
    console.log("The email is: " + newPost.email); 
}); 

回答

1

請記住,JavaScript數組和對象不是JSON數組和字典,儘管他們有多緊密匹配。看起來你想從數據中創建一個JavaScript對象,就像你接收它一樣。

鑑於你的代碼,它調整到這樣的事情應該產生類似的結構你問什麼:

// Get a reference to our posts 
var ref = new Firebase("https://<database>.firebaseio.com/profile"); 
// some place to store stuff 
var results = { 
    'emails':[] 
}; 
// Retrieve new posts as they are added to our database 
ref.on("child_added", function(snapshot, prevChildKey) { 
    var newPost = snapshot.val(); 
    results.emails.push({ 
    'email':newPost.email 
    }); 
}); 

轉換的JavaScript results對象的JSON字符串很簡單,只要:

var json_string = JSON.stringify(results); 

有幾種安排數據的方法。我只能爲已知元素提供代碼。

+0

謝謝!結構正確,但我怎樣才能在html中訪問這個對象。看起來這個對象在html頁面加載時仍然是空的。我在html中使用ng-repeat,但它似乎是對象的人口發生得太晚。你有什麼建議如何確保對象被填充 – noobie212

+0

@ noobie212我不是很熟悉Angular,但它似乎[這個答案](http://stackoverflow.com/questions/15891052/dynamically-add-item -to-angularjs-ng-repeat)可能有你想要的。 – Ouroborus