我有一个用数据填充的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);
};
您可以使您的项目对象成为您需要的任何对象,我不知道您如何将所有内容放入其中。但是将这些项目推入数组将获得所需的内容。