AngularJS ForEach将新项目推送到对象中

时间:2013-11-21 02:24:00

标签: javascript angularjs

我有一个JavaScript对象,其中包含零售商列表

var listRetailers = [
{"url":"http://www.fake1.com", "img":"images/1logo.jpg"},
 {"url":"http://www.fake2.com", "img":"images/2logo.gif"},
 {"url":"http://www.fake3.com", "img":"images/3logo.gif"},
 ]

我想推出一个新密钥:每个项目的价值:

object.push("storeNumber": "1");

因此更新的JavaScript对象将是

var listRetailers = [
{"url":"http://www.fake1.com", "img":"images/1logo.jpg", "storeNumber":"1"},
 {"url":"http://www.fake2.com", "img":"images/2logo.gif", "storeNumber":"1"},
 {"url":"http://www.fake3.com", "img":"images/3logo.gif", "storeNumber":"1"},
 ]

在我的角度控制器中,我有

$scope.retailers = listRetailers ;

angular.forEach($scope.retailers, function(obj){
          obj.push("storeNumber": "1");
        });

错误说明:对象#没有方法'推送'

我在这里缺少什么?

1 个答案:

答案 0 :(得分:22)

那是因为obj引用了您的零售商对象,而不是数组If you want to add properties to it,您可以使用括号[]表示法或使用点.表示法来定义它们。

angular.forEach($scope.retailers, function(obj){

   //Using bracket notation
   obj["storeNumber"] = 1;

   //Using dot notation
   obj.storeNumber = 1;

});