2016-12-14 6 views
1

J'essaie de créer un tableau sur chaque objet du journal et d'y insérer les aliments correspondant à l'identifiant du journal. Est-ce que quelqu'un voit de toute façon que je peux faire ce travail? Ou une raison que ce n'est pas?angular.js: 14110 TypeError: Impossible de lire la propriété 'push' de undefined

(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

Vous devez vérifier diary.foods est en fait un tableau. – RamblinRose

Répondre

0

Vous devez vérifier diary.foods est en fait un tableau. Si c'est OK pour modifier le journal, essayez

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

Merci! @RamblinRose qui semble avoir fonctionné. – tks2n