Comment fusionner deux tableaux d'objets dans angularjs?
je veux ajouter le tableau d'objets suivant avec un existant dans angulajs pour mettre en œuvre la fonctionnalité de charge plus.
ie, en ajoutant la réponse AJAX avec une existante à chaque fois.
j'ai une variable, $scope.actions
qui contient la suite JSON
données
{
"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
}
]
}
je veux ajouter suivants JSON
réponse à chaque fois cette variable.
{
"data": [
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
},
{
"id": 2108,
"action_type_id": 202,
"user_id": 1
}
]
}
j'ai essayé avec $scope.actions.data.concat(data.data);
mais il ne fonctionne pas et obtenir l'erreur suivante message
$scope.actions.data.concat is not a function
4 réponses
Vous pouvez utiliser angular.extend(dest, src1, src2,...);
Dans votre cas, il serait :
angular.extend($scope.actions.data, data);
Voir la documentation ici :
https://docs.angularjs.org/api/ng/function/angular.extend
Sinon, si vous obtenez seulement de nouvelles valeurs à partir du serveur, vous pouvez effectuer les opérations suivantes
for (var i=0; i<data.length; i++){
$scope.actions.data.push(data[i]);
}
Cela fonctionne pour moi :
$scope.array1 = $scope.array1.concat(array2)
Dans votre cas, il serait :
$scope.actions.data = $scope.actions.data.concat(data)
$scope.actions.data.concat is not a function
même problème avec moi, mais je résoudre le problème par
$scope.actions.data = [].concat($scope.actions.data , data)
Simple
var a=[{a:4}], b=[{b:5}]
angular.merge(a,b) // [{a:4, b:5}]
Testé sur angulaire 1.4.1