如何在angularjs对象中添加动态属性

时间:2019-03-28 07:43:46

标签: angularjs

我有对象

library(dplyr)
tibble(dat) %>%
  filter(row_number() < which.min(dat)) %>%
  summarise(mean = mean(dat))
# A tibble: 1 x 1
   mean
  <dbl>
1  3.10

在范围内有$scope.postData = { 'pmu.messages.message': $scope.upd.message, 'pmu.received.id': $scope.upd.atomByReceivedBy.id, }; ,其中包含图像路径数组

$scope.ImageList

我想将这些数组值添加到$ scope.postData字段属性值

[
  { img: 'a.jpg', smallimg: 'b.jpg', smpath: 'c.jpg' },
  { img: 'a1.jpg', smallimg: 'b1.jpg', smpath: 'c1.jpg' },
];

如何实现?

2 个答案:

答案 0 :(得分:1)

迭代$scope.ImageList并使用括号表示法创建属性。

在此示例中,我仅使用了一个属性

$scope.ImageList.forEach(function(element, index){
    $scope.postData['pmu.image[' + index +'].img'] = element.img;
});

答案 1 :(得分:1)

您可以使用Array.forEach迭代数组,然后使用Object.entries提取每个图像的键和值。

$scope = {
  upd: {
    message: '',
    atomByReceivedBy: {
      id: ''
    }
  },
  ImageList: [{
      img: 'a.jpg',
      smallimg: 'b.jpg',
      smpath: 'c.jpg'
    },
    {
      img: 'a1.jpg',
      smallimg: 'b1.jpg',
      smpath: 'c1.jpg'
    },
  ]
}

$scope.postData = {
  'pmu.messages.message': $scope.upd.message,
  'pmu.received.id': $scope.upd.atomByReceivedBy.id,
};

$scope.ImageList.forEach((img, index) => {
  Object.entries(img).forEach(([key, value]) => {
    $scope.postData[`pmu.image[${index}].${key}`] = value;
  });
});

console.log($scope.postData);