如何合并 angularjs 中的两个对象数组?
How merge two objects array in angularjs?
我想将以下对象数组附加到 angulajs 中的现有对象数组,以实现加载更多功能。
即,每次将 AJAX 响应附加到现有响应。
我有一个变量,$scope.actions
,其中包含以下 JSON
数据,
{
"total": 13,
"per_page": 2,
"current_page": 1,
"last_page": 7,
"next_page_url": "http://invoice.local/activities/?page=2",
"prev_page_url": null,
"from": 1,
"to": 2,
"data": [
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
},
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
}
]
}
我想在每次此变量时附加以下 JSON
响应。
{
"data": [
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
},
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
}
]
}
我试过 $scope.actions.data.concat(data.data);
但它不工作并收到以下错误消息
$scope.actions.data.concat is not a function
您可以使用angular.extend(dest, src1, src2,...);
你的情况是:
angular.extend($scope.actions.data, data);
在此处查看文档:
https://docs.angularjs.org/api/ng/function/angular.extend
否则,如果您只是从服务器获取新值,则可以执行以下操作
for (var i=0; i<data.length; i++){
$scope.actions.data.push(data[i]);
}
这对我有用:
$scope.array1 = $scope.array1.concat(array2)
你的情况是:
$scope.actions.data = $scope.actions.data.concat(data)
$scope.actions.data.concat is not a function
和我一样的问题,但我通过
解决了问题
$scope.actions.data = [].concat($scope.actions.data , data)
简单
var a=[{a:4}], b=[{b:5}]
angular.merge(a,b) // [{a:4, b:5}]
在 angular 1.4.1
上测试
我想将以下对象数组附加到 angulajs 中的现有对象数组,以实现加载更多功能。
即,每次将 AJAX 响应附加到现有响应。
我有一个变量,$scope.actions
,其中包含以下 JSON
数据,
{
"total": 13,
"per_page": 2,
"current_page": 1,
"last_page": 7,
"next_page_url": "http://invoice.local/activities/?page=2",
"prev_page_url": null,
"from": 1,
"to": 2,
"data": [
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
},
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
}
]
}
我想在每次此变量时附加以下 JSON
响应。
{
"data": [
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
},
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
}
]
}
我试过 $scope.actions.data.concat(data.data);
但它不工作并收到以下错误消息
$scope.actions.data.concat is not a function
您可以使用angular.extend(dest, src1, src2,...);
你的情况是:
angular.extend($scope.actions.data, data);
在此处查看文档:
https://docs.angularjs.org/api/ng/function/angular.extend
否则,如果您只是从服务器获取新值,则可以执行以下操作
for (var i=0; i<data.length; i++){
$scope.actions.data.push(data[i]);
}
这对我有用:
$scope.array1 = $scope.array1.concat(array2)
你的情况是:
$scope.actions.data = $scope.actions.data.concat(data)
$scope.actions.data.concat is not a function
和我一样的问题,但我通过
解决了问题 $scope.actions.data = [].concat($scope.actions.data , data)
简单
var a=[{a:4}], b=[{b:5}]
angular.merge(a,b) // [{a:4, b:5}]
在 angular 1.4.1
上测试