将数据推送到对象angularjs



我想制作对象的选项卡,并使用for循环将另一个对象的值传递给这个选项卡。我的对象标签:

data4 = [{meal_id : '' ,amount : '' }]

循环:

for i in [0...$scope.mealsList.length]
            data4[i].meal_id = $scope.mealsList[i].id 
            data4[i].amount = $scope.mealsList[i].amount

$scope.mealsList是对象的选项卡,我想复制它。

现在我有一个错误:

Cannot set property 'meal_id' of undefined

你能告诉我,我做错了什么吗?

ps:对不起我的语言能力,希望你能听懂。

您对$scope.mealsList的长度进行迭代,但从data4中获取值。如果它们的长度不相同(这似乎是问题所在),那么在取消引用data[i]时,您将得到未定义。

我不太确定你想做什么,但似乎你想将$scope.mealsList修改为data4,因为你要替换data4的所有值。

在这种情况下,您只需将mealsList中的值修改为您想要的值,并将data4设置为该值

var result = map($scope.mealsList, function(item) { return { meal_id: item.id, amount: item.amount };});
console.log('mapped: ', result);
data4 = result;
function map(arr, fn) {
  var res = [];
  for (var i = 0; i < arr.length; ++i) {
    res.push(fn(arr[i]));
  }
  return res;
}
for i in [0...$scope.mealsList.length]{
            //if you want to delete some properties 'prop' form meaList object use this:
            //delete $scope.mealsList[i].prop0
            //delete $scope.mealsList[i].prop1
            data4.push($scope.mealsList[i])
}

最新更新