繁体   English   中英

angular.js:14110 TypeError:无法读取undefined的属性'push'

[英]angular.js:14110 TypeError: Cannot read property 'push' of undefined

我正在尝试在每个日记对象上创建一个数组,并将与日记id匹配的食物推送到该数组。 有人看到我能做到这一点吗? 或者它不是的原因?

(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();

控制台错误消息

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM