Angularjs 角度forEach将值添加到每个对象中

Angularjs 角度forEach将值添加到每个对象中,angularjs,foreach,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'}, ]; 我如何添加 classNam

我不知道怎么做:

我有一个对象数组:

$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';
            }); 
但它不起作用,因为类名还不存在


谢谢

使用索引访问数组对象

angular.forEach($scope.eventSources,function(value,index){
  $scope.eventSources[index]["className"] = "evenement";
}); 
或者您也可以将其添加到值中

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

映射数组,然后为每个项目指定属性

 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'},
 ];

您可以只使用
angular.forEach
中的
obj
参数,因为您需要为每个对象(例如:
itm
)分配一个新属性
className
,作为
itm.className='evement'

var-app=angular.module(“app”,[]);
应用程序控制器(“ctrl”,函数($scope){
$scope.eventSources=[{
标题:“装备1对装备2”,
开始:新日期(),
颜色:“黑色”
},
{
标题:“装备2对装备3”,
开始:新日期(),
结束:新日期(),
颜色:“黑色”
}
];
angular.forEach($scope.eventSources,function(itm){
itm.className='evenement';
});
});

{{eventSources}json}

但它不起作用,因为类名还不存在。
-实际上毫无意义。如果
value
是一个对象,则可以轻松地为其指定新特性。根据OP中显示的代码,它肯定是一个对象。您能创建一个简短的示例来说明您的实际问题吗?
value
是对象,我们只需添加一个属性即可that@Frank莫迪卡,你说得对。但这并不意味着上述情景是错误的。有很多方法可以做到这一点,我也包括你的方法。我知道,我不是那个否决你的人。但是,考虑到我们使用的是
angular.forEach
,您原来的方法仍然比需要的复杂。我看到您使用了更简单的解决方案进行了更新。实际上,
angular.forEach
接受三个参数
(obj,iterator,[context])
,而迭代器(您打算引用的)也接受三个参数:
(value,key,obj)
,其中value是对象属性或数组元素的值,key是对象属性键或数组元素索引,obj是对象/数组本身。@ippi,告诉我。这正是文件所说的。OP here只需要
迭代器中的
obj
就可以添加新属性,其余所有参数都是无关的。@Sajal有一个好的答案和技术上的正确性并没有坏处。对不起,如果我的声音听起来很刺耳。我仍然认为你应该编辑它。我同意使用正确的词汇,但我想这里的措辞有点不恰当。无论如何,我用一个更好的短语更新了答案,以供将来阅读的人使用。