2017-06-10 10 views
0

私はコーディングが初めてで基本的な答えが非常に高く評価されます。ファイヤーベースデータベースを配列として抽出する方法

JavaScriptでのval()関数を使用してfirebaseデータを抽出するとき、Iのようなオブジェクトとしてデータを取得することができています:

obj1 : { 
     obj1.1 :{ 
       data1 : "xyz", 
       data2 : "abc" 
       } 
     obj1.2 :{ 
       data1 : "qwe", 
       data2 : "rty" 
       } 
     } 

OBJ2:{ ....} しかし、 は私のような配列形式でデータたい:すべてのヘルプは高く評価されるだろう

obj1 : [ 
     obj1.1 :{ 
       data1 : "xyz", 
       data2 : "abc" 
       } 
     obj1.2 :{ 
       data1 : "qwe", 
       data2 : "rty" 
       } 
     ] 
    obj2 : [ 
      .... 
      ] 

答えて

0
あなたは、配列

var app = angular.module("app", []); 
 

 

 
app.controller("ctrl", ["$scope", function($scope) { 
 
    var convertor = function(object) { 
 
     var newArray = []; 
 

 
     for (var key in object) { 
 
      var objectA = { name: key , list: []}; 
 
      if (object.hasOwnProperty(key)) { 
 
       for (var keyA in object[key]) { 
 
        objectA.list.push(object[key][keyA]); 
 
       } 
 
      } 
 
      newArray.push(objectA); 
 
     } 
 
     return newArray; 
 
    } 
 

 
    var array = { 
 
     obj1: { 
 
      "obj1.1": { data1: "a", data2: "b" }, 
 
      "obj1.2": { data1: "c", data2: "d" } 
 
     }, 
 
     obj2: { 
 
      "obj1.1": { data1: "e", data2: "f" }, 
 
      "obj1.2": { data1: "g", data2: "h" } 
 
     } 
 
    } 
 

 
    $scope.data = convertor(array); 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="ctrl"> 
 
<ul> 
 
    <li ng-repeat="item in data"> 
 
     {{item.name}} 
 
     <ul> 
 
      <li ng-repeat="child in item.list"> 
 
       <label>data1: {{child.data1}}</label> | 
 
       <label>data2: {{child.data2}}</label> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
</ul> 
 
</div>

firebaseオブジェクトを変換するために、このコンバータを使用することができます

関連する問題