2016-05-09 1 views
1

Текущий у меня есть массив URL-адресов, закодированных для получения изображений в html.Как сохранить ответ с помощью firebase в массиве Json

$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 
    }); 
}); 

Преобразование яваскрипта results объекта в строку JSON так просто, как:

var json_string = JSON.stringify(results); 

Существует несколько способов упорядочивания данных. Я могу только предоставить код для известных элементов.

+0

Спасибо! Структура правильная, но как я могу получить доступ к этому объекту в html. Кажется, объект по-прежнему остается нулевым к тому времени, когда загружается страница html. Я использую ng-repeat в html, но похоже, что популяция объекта происходит слишком поздно. У вас есть какие-либо предложения о том, как убедиться, что объект заселен. – noobie212

+0

@ noobie212 Я не очень хорошо знаком с Angular, но кажется [этот ответ] (http://stackoverflow.com/questions/15891052/dynamically-add-item -to-angularjs-ng-repeat) может иметь то, что вы хотите. – Ouroborus

Смежные вопросы