2016-12-14 40 views
1

我试图在每个日记对象上创建一个数组,并将与日记ID匹配的食物推送到该数组。有人看到我可以做这个工作吗?或者它不是的原因?angular.js:14110 TypeError:无法读取未定义的属性'推'

(Diary Controller) 
app.controller("DiaryCtrl", function($scope, $rootScope, $location, DiaryFactory, FoodFactory){ 

$scope.diaries = []; 
$scope.foods = []; 


//getMeals 
//lists all meals on the diary page 
let getAllDiaries = function(){ 
    DiaryFactory.getDiary($rootScope.user.uid).then(function(FbDiaries) { 
     console.log('diaries: ', FbDiaries); 
     FoodFactory.getFoodsFB($rootScope.user.uid).then(function(FbFoods){ 
      console.log('foods from controller', FbFoods); 
      FbFoods.forEach(function(food){ 
       FbDiaries.forEach(function(diary){ 
        console.log('foods', food); 
        if(food.mealId === diary.id){ 
         diary.foods.push(food); 
         console.log('foods array on diary', diary.foods); 
        } 
       }); 
      }); 
     }); 
    }); 
}; 
getAllDiaries(); 

Console error message

+0

您需要检查diary.foods实际上是一个数组。 – RamblinRose

回答

0

你需要检查diary.foods实际上是一个数组。如果可以修改日记,请尝试

diary.foods = diary.foods || []; 
diary.foods.push(food); 
+0

谢谢! @RamblinRose似乎工作。 – tks2n

相关问题