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)