我正在尝试将JSON数组添加到JSON对象。我的代码就像这样
$scope.packageElement = {
"settings": [
{
"showNextPallet": true,
"isParcelData": false,
"isFreightData": true,
"name": 0
}
]
};
dataFromServer = {
"pData": [
{
"PKUNIT": "LP",
"PKDESC": "LARGE PKG",
"PKDLEN": 30,
"PKDWDT": 20,
"PKDHTG": 20
}
]
};
$scope.packageElement.concat(dataFromServer.pData);
但这会引发错误
TypeError: undefined is not a function
在第
行$scope.packageElement.concat(dataFromServer.pData);
我想要的输出是这样的
var expectedOutPut = {
"settings": [
{
"showNextPallet": true,
"isParcelData": false,
"isFreightData": true,
"name": 0
}
], "pData": [
{
"PKUNIT": "LP",
"PKDESC": "LARGE PKG",
"PKDLEN": 30,
"PKDWDT": 20,
"PKDHTG": 20
}
]
};
任何人都可以指出我在这里做错了吗?
答案 0 :(得分:3)
简单:
$scope.packageElement.pData = dataFromServer.pData;
$scope.packageElement
是一个对象,它没有concat
函数。
或者,更好的选择可能是使用angular.extend()
:
var expectedOutPut = angular.extend({}, $scope.packageElement, {'pData': dataFromServer.pData});
这样,您将复制对象,而不是修改它们 注意:请记住,angular.extend不支持递归合并(深层复制)。