У меня есть следующая функция для получения данных по $resourse
, я хочу объединить выходные данные с $scope.data
.
console.log(sasa) print
[$promise: Promise, $resolved: false]
Resource1:
Resource2:
Resource3:
Resource4:
Resource5:
$promise: Promise
$resolved: true
length: 5
__proto__: Array[0]
и console.log($scope.data); print null
console.log($scope.data); print null
$scope.data=[]
function getData(){
var sasa= $resource('api/testrecordajaxs/:page/:size', {
page : page,
size : size
}).query();
$scope.data.push.apply($scope.data,sasa);
console.log(sasa)
console.log($scope.data);
return $scope.data;
}
Вы не дали достаточной информации для меня, чтобы быть на 100% уверенным, но похоже, что вы пытаетесь прочитать все ключи от объекта, а не все значения массива. Это действительно то, что вам нужно.
for (var key of Object.keys(sasa)) {
$scope.data.push(sasa[key]);
}
Исправление находится рядом с комментарием " THIS
" во всех шапках
// $scope.data = []
var $scope = { data: [] } // initialization just for this demo
//function getData(){
//var sasa= $resource('api/testrecordajaxs/:page/:size', {
// page : page,
// size : size
//}).query();
// it looks to me like this isn't even an array in your example.
var sasa = {
Resource1: 1,
Resource2: 2,
Resource3: 3,
Resource4: 4,
Resource5: 5
};
//$scope.data.push.apply($scope.data,sasa);
// THIS is what you want
for (var key of Object.keys(sasa)) {
$scope.data.push(sasa[key]);
}
console.log($scope.data);
// return $scope.data;
//}
Вы можете использовать.concat для объединения двух массивов
$ scope.mergedArray = $ scope.data.concat(output);