referencia org docs component javascript jquery angularjs merge append

javascript - org - ng-model



¿Cómo fusionar la matriz de dos objetos en angularjs? (4)

Quiero añadir la siguiente matriz de objetos con una existente en angulajs para implementar la función Cargar más.

es decir, adjuntando la respuesta AJAX con una existente cada vez.

Tengo una variable, $scope.actions que contiene los siguientes datos 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 } ] }

Quiero añadir la siguiente respuesta JSON cada vez que esta variable.

{ "data": [ { "id": 2108, "action_type_id": 202, "user_id": 1 }, { "id": 2108, "action_type_id": 202, "user_id": 1 } ] }

He intentado con $scope.actions.data.concat(data.data);

pero no funciona y aparece el siguiente mensaje de error

$scope.actions.data.concat is not a function


Esto funciona para mí:

$scope.array1 = $scope.array1.concat(array2)

En tu caso sería:

$scope.actions.data = $scope.actions.data.concat(data)


Puede usar angular.extend(dest, src1, src2,...);

En tu caso sería:

angular.extend($scope.actions.data, data);

Vea la documentación aquí:

https://docs.angularjs.org/api/ng/function/angular.extend

De lo contrario, si solo obtiene nuevos valores del servidor, puede hacer lo siguiente

for (var i=0; i<data.length; i++){ $scope.actions.data.push(data[i]); }


Sencillo

var a=[{a:4}], b=[{b:5}] angular.merge(a,b) // [{a:4, b:5}]

Probado en angular 1.4.1


$scope.actions.data.concat is not a function

mismo problema conmigo pero soluciono el problema por

$scope.actions.data = [].concat($scope.actions.data , data)