Angularjs Angularfire forEach键返回未定义
我有一些数据Angularjs Angularfire forEach键返回未定义,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我有一些数据 { "projects" : [ { "projectName" : "Test Project 1", "dueDate" : "20/05/2014", "owner" : "Test owners 1", "categories" : [ "JavaScript", "HTML",
{
"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]);
});
});
};
TM.factories.getData=function(){
var getProjects=newfirebase(“https://.firebaseio.com/projects");
返回项目;
};
TM.controllers={};
TM.controllers.overviewCtrl=函数($scope,$firebase){
var taskArr=[];
$scope.projectList=$firebase(TM.factories.getData());
$scope.projectList.$on(“已加载”,函数(){
$scope.projectList.$getIndex().forEach(函数(键,i){
log($scope.projectList[key]);
});
});
};
不用担心它的布局,我正在尝试用不同的方式编写它,这是非常早期的开发工作
问题是为什么我在使用“key”或“I”时变得未定义?如果我只记录“key”或“I”,我得到0,1。你能试试这个吗:
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]);
});
});
};
谢谢,现在说得通了