2014-03-12 52 views
0

我有一些數據Angularfire的forEach鍵返回undefined

{ 
    "projects" : [ 
     { 
      "projectName" : "Test Project 1", 
      "dueDate" : "20/05/2014", 
      "owner" : "Test owners 1", 
      "categories" : [ 
       "JavaScript", 
       "HTML", 
       "CSS" 
      ], 
      "open" : true, 
      "tasks" : [ 
       { 
        "taskName" : "Test task 1", 
        "targetDate" : "02/04/2014", 
        "categories" : [ 
         "JavaScript", 
         "HTML", 
         "CSS" 
        ], 
        "open" : true 
       }, 
       { 
        "taskName" : "Test task 2", 
        "targetDate" : "10/04/2014", 
        "categories" : [ 
         "JavaScript", 
         "HTML" 
        ], 
        "open" : true 
       } 
      ] 
     }, 
     { 
      "projectName" : "Test Project 2", 
      "dueDate" : "12/07/2014", 
      "owner" : "Test owners 2", 
      "categories" : [ 
       "JavaScript", 
       "HTML", 
       "CSS" 
      ], 
      "open" : true, 
      "tasks" : [ 
       { 
        "taskName" : "Test task 1", 
        "targetDate" : "13/05/2014", 
        "categories" : [ 
         "HTML", 
         "CSS" 
        ], 
        "open" : true 
       }, 
       { 
        "taskName" : "Test task 2", 
        "targetDate" : "03/06/2014", 
        "categories" : [ 
         "JavaScript" 
        ], 
        "open" : true 
       } 
      ] 
     } 
    ] 
} 

那麼我正試圖輸出包含在每個數組索引的對象

TM.factories.getData = function(){ 
    var getProjects = new Firebase("https://<my-firebase>.firebaseio.com/projects"); 
    return getProjects; 
}; 

TM.controllers = {}; 

TM.controllers.overviewCtrl = function($scope,$firebase){ 
    var taskArr = []; 
    $scope.projectList = $firebase(TM.factories.getData()); 
    $scope.projectList.$on("loaded", function() { 
     $scope.projectList.$getIndex().forEach(function(key,i) { 
      console.log($scope.projectList[key]); 
     }); 
    }); 
}; 

不要擔心如何簡單的控制器這是擺在我正在試驗以不同的方式寫它,這是非常早的開發工作。

問題是爲什麼我在使用「key」或「i」時得到undefined?如果我的控制檯登錄只是「鑰匙」或「我」我得到0,1。

回答

2

你可以試試這個:

TM.controllers.overviewCtrl = function($scope,$firebase){ 
    var taskArr = []; 
    $scope.projectList = $firebase(TM.factories.getData()); 
    $scope.projectList.$on("loaded", function(projectList) { 
     projectList.$getIndex().forEach(function(value,key) { 
      console.log(projectList[key]); 
     }); 
    }); 
}; 
+0

謝謝,現在是有道理的 –