2015-12-01 107 views
0

我有以下函数获取数据$resourse,我想合并输出数据与$scope.data合并两个阵列与Angularjs范围

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

$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; 
} 
+0

评论附近是回答这些问题有帮助吗? –

回答

0

可以使用.concat合并两个阵列

$ scope.mergedArray = $ scope.data.concat(输出);

+0

仍然无法正常工作$ scope.mergedArray print [] –

+0

你可以做一个蹲点 –

0

你没有给我足够的信息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; 
 
//}