2016-05-22 6 views
1

私の例では、データを含む応答配列を取得するGETリクエストを送信すると、firefoxのコンソールに配列が空であることがわかります。私はどこにエラーがあるか分からない。ここで enter image description hereget要求後に空の配列(AngularJS)

私のコードです:

//Controller: 
$scope.changeDate = function (selFrom) { 
    vm.repos = CrudService.getRepoByDay(selFrom); 
} 


//Service (CrudService): 
function CrudService(ResService) { 
    var service = { 
     getRepoByDay: getRepoByDay 
    }; 

    return service; 

    function getRepoByDay(selTo) { 
     return ResourceService.test.query(
     { endDate: selTo }, 
     successResponse, 
     errorResponse 
    ); 
    } 

    function successResponse(response) { 
     return response; 
    } 
} 

//Service (ResService) 
test: $resource(baseUrl + '/api/repodates', { 
     endDate: '@EndDate' 
}, {}) 

//View 
<tbody> 
    <tr ng-repeat="report in rc.repos> 
    <td ng-repeat="(key, value) in report"> 
     {{ value }} 
    </td> 
    </tr> 
</tbody> 

誰もが私が何をすべきかのアイデアを持っていますか?

答えて

2

$リソースは、あなたが約束のコールバックにそれを処理する必要が非同期です:

return ResourceService.test.query(
    { endDate: selTo } 
); 

CrudService.getRepoByDay(selFrom).$promise.then(function(data){ 
     vm.repos = data; 
     console.log(data);//log here not ouside the callback to check 
}); 

$ qを持つEDITサンプル:

var deferred = $q.defer(); 
ResourceService.test.query(
    { endDate: selTo } 
).$promise.then(
    function(data){deferred.resolve(data);}, 
    function(rejection){deferred.reject(rejection);} 
); 
return deferred.promise; 
+0

意味、私は「mustn CrudServiceのサービスで'successResponse'を定義しますか? – yuro

+0

$ promiseは生のコールバックを定義する必要はないと約束しているので、 – Walfrat

+0

'$ q'、' .resolve'、 '.reject'の例がありますか? – yuro

関連する問題