2016-12-14 128 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

相關問題