2016-12-14 7 views
1

私は各ダイアリーオブジェクトに配列を作成し、その配列にダイアリIDと一致する食品をプッシュしようとしています。とにかく私はこの仕事をすることができます誰も見ていますか?それともそうでないのか?あなたはdiary.foodsをチェックする必要がangular.js:14110 TypeError:未定義のプロパティ 'push'を読み取ることができません

(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.push(food); 
+0

ありがとう! @ Ramblinローズが働いているようです。 – tks2n

関連する問題