我有一个用数据填充的json模板-在这种情况下为产品数据。例如我有以下json

// product template
$scope.productAttributes = {
        "Code": null,
        'Attributes':
        {}
    };


当用户通过Ui输入一些产品详细信息并调用loadPrices()时,我便使用此函数填充productAttributes ...

    var loadPrices = function () {
    $scope.entity = {// grabs variables from a form};
        $scope.productAttributes.Code = $scope.productID.toUpperCase();
        $scope.productAttributes.Attributes = $scope.entity;
        $scope.productAttributes.Attributes.Term = $scope.productAttributesObj.Term;
        $scope.productAttributes.Attributes.Quantity = 1;
    };


这是productAttributes的结果...

{

"Code": "CON7",
"Attributes": {
    "Postcode": "n44er",
    "rSize": 1000,
    "Bandwidth": 10,
    "Term": "36",
    "Quantity": 1
}
}


所以我的问题是,当我想通过调用loadPrices添加新数据时,每次尝试添加到productAttributes时都会覆盖productAttributes。我希望创建这样的结构...

{

"Code": "CON7",
"Attributes": {
    "Postcode": "n44er",
    "Size": 1000,
    "Bandwidth": 10,
    "Term": "36",
    "Quantity": 1
},
"Code": "CON34",
"Attributes": {
    "Postcode": "nww45",
    "Size": 10,
    "Bandwidth": 10,
    "Term": "36",
    "Quantity": 1
},
"Code": "CON89",
"Attributes": {
    "Postcode": "sw23ed",
    "Size": 101,
    "Bandwidth": 101
}
}


有什么想法可以实现这一目标吗?任何意见,将不胜感激。

另外,我想在每个“属性”对象中创建一个ID字段(例如“ ID”:“ 9e5670fa-2fd7-4858-a667-c99cb5baf0f9”)。是否可以使用Angular的javascript创建Guid?非常感谢

最佳答案

将变量设为数组并将对象推入数组。

$scope.productAttributes = [];

var loadPrices = function () {
  var item = {
    code: $scope.productID.toUpperCase();
    attributes: {
      term: $scope.productAttributesObj.Term,
      quantity: 1
    }
  }

  $scope.productAttributs.push(item);
};


您可以使您的项目对象成为您需要的任何对象,我不知道您如何将所有内容放入其中。但是将这些项目推入数组将获得所需的内容。

09-30 19:01