Angular forEach将值添加到每个对象中

时间:2017-06-22 10:24:27

标签: angularjs foreach

我不知道该怎么做:

我有一系列对象:

$scope.eventSources = [
      {title: 'Equipe 1 vs equipe 2',start: new Date(y, m, 1),color: 'black'},
      {title: 'Equipe 2 vs equipe 3',start: new Date(y, m, d - 5),end: new Date(y, m, d - 2),color: 'black'},
];

如何添加

className: 'evenement'

在每个对象里面?

我试过这个:

angular.forEach($scope.eventSources,function(value,index){
                value.className = 'evenement';
            }); 

但它不起作用,因为className尚不存在。

谢谢

3 个答案:

答案 0 :(得分:0)

使用索引

访问数组对象
angular.forEach($scope.eventSources,function(value,index){
  $scope.eventSources[index]["className"] = "evenement";
}); 

或者您也可以将其添加到值

angular.forEach($scope.eventSources,function(value,index){
  value.className = "evenement";
});

答案 1 :(得分:-1)

在数组中映射,然后为每个项目分配属性。

 var newArray = $scope.eventSources.map(function(item) {
    item.className: 'evenement';

   return item;
});

 console.log(newArray); 
 // result
 [
  {title: 'Equipe 1 vs equipe 2',start: new Date(y, m, 1),color: 'black',  
  className:'evenement'},
  {title: 'Equipe 2 vs equipe 3',start: new Date(y, m, d - 5),end: new Date(y, m, d - 2),color: 'black', className:'evenement'},
 ];

答案 2 :(得分:-1)

您可以仅使用obj中的angular.forEach参数,因为您需要为每个对象(例如className)分配一个新属性itm作为{ {1}}



itm.className = 'evenement';

var app = angular.module("app", []);

app.controller("ctrl", function($scope) {

  $scope.eventSources = [{
      title: 'Equipe 1 vs equipe 2',
      start: new Date(),
      color: 'black'
    },
    {
      title: 'Equipe 2 vs equipe 3',
      start: new Date(),
      end: new Date(),
      color: 'black'
    }
  ];

  angular.forEach($scope.eventSources, function(itm) {
    itm.className = 'evenement';
  });
});