2016-04-29 99 views
1

我想製作對象的選項卡,並使用for循環傳遞給此選項卡的另一個對象的值。我對象的標籤:將數據推送到對象angularjs

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

for循環:

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:對不起,我的語言能力,希望你能理解一切。

回答

2

您遍歷的長度爲$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; 
} 
+0

好男人!謝謝,它的工作! :) –

0
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]) 
} 
相關問題