如何在angularjs中合并两个对象数组?
我想在angulajs中添加以下对象数组与现有的对象数组,以实现更多的function。
即,每次附加现有的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
这对我有用:
$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}]
测试角度为1.4.1