2016-04-14 26 views

cevap

2

Ben $resource sözünün arkasında nesne dönüş içine (değil nesne biçiminde) verilerini içermez neden emin değilim, o aşağıda gibi sonuçlanır gösterilecek

e {$promise: Promise, $resolved: true} // 1003021043401956 isn't included there 

Sanırım, istek sunucudan döndürülen nesneyi bekliyordur. Bu nesneyi döndürmek etmezse, o zaman cevap olarak aynı içermez Yani

bu sorunu çözmek için 2 yol vardır.

  1. o söz nesnesi döndüren önce modifiye edeceğini, kaynak içinde kendi get istek nesne oluşturun {'data': '1003021043401956'}
  2. gibi nesne biçiminde veri döndürecek yapın.

    var apiRequest = $resource("https://live.reddcoin.com/api/addr/:address/balance", {}, { 
        get: { 
         method: 'GET', 
         transformResponse: function(response){ 
         return {data: response}; //creating object 
         } 
        } 
    }); 
    

Fiddle

1

bu deneyin:

.controller('TwoController', function($scope, apiData){ 
    apiData.full('RszZrK51ur5G67y3Wy6niTnawdYYdBRZEq').then(function(data){ 
     console.log(data); 
     $scope.price = data; 
    }); 
}); 

vaat zincirleme unutmayın. Eğer başarı geri aramasında data dönmek satışlardaki Yani, then sonucu hala (iç sonucunda data birlikte) bir sözdür.

Çalışma kod parçacığı:

angular.module('AppName', ['ngResource']) 
 

 
.factory('apiData', ['$resource', function ($resource) { 
 
    var apiRequest = $resource("https://live.reddcoin.com/api/addr/:address/balance"); 
 
    return { 
 
     full: function(address){ 
 
      return apiRequest.get({address: address}).$promise 
 
      .then(
 
       function(data){ console.log(data); return data;}, 
 
       function(){ return 'error'; } 
 
      ); 
 
     } 
 
     } 
 
}]) 
 

 
.controller('TwoController', function($scope, apiData){ 
 
    apiData.full('RszZrK51ur5G67y3Wy6niTnawdYYdBRZEq').then(function(data){console.log(data); $scope.price = data;}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://code.angularjs.org/1.2.23/angular-resource.min.js"></script> 
 
<div ng-app="AppName" ng-controller="TwoController">{{price}}</div>

+0

Evet, ama 'data' çözüldü vaadi dönen veri olmalı, değil mi? – neptune

+0

tam olarak, ama sonra 'geri' başarı geri arama içinde veri döndüremezsiniz ve 'sonra' sonucunu kapsamına atarsınız. 'O zaman' sonucu her zaman bir sözdür. Verileri kendisinin kapsamına atamanın tek yolu, kapsam değişkenini daha sonra başarılı geri arama içinde atamaktır. – fikkatra

+0

Anladım, ancak '' console.log (data); '' başarılı geri aramada hala bana ihtiyaç duyduğum bilgiyi konsolda gösterme. Anlamadığım bu. Bildiğiniz @fikkatra – neptune

İlgili konular