【问题标题】:Push data to object angularjs将数据推送到对象 angularjs
【发布时间】:2016-04-29 19:00:52
【问题描述】:

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

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:对不起我的语言能力,希望大家理解。

【问题讨论】:

    标签: javascript angularjs coffeescript


    【解决方案1】:

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

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

    在这种情况下,您只需将餐点列表中的值修改为您想要的值并将 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;
    }
    

    【讨论】:

      【解决方案2】:
      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])
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-31
        • 1970-01-01
        • 2016-12-06
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多