2016-04-01 11 views
2

Açısal uygulamasında, genel bir OData beslemesinden veri almak için odatasources.js kütüphanesini kullanıyorum. Aşağıdaki çağrı bu vaadi tarafından döndürülen gerçek verilere erişim kazanmak için, ben çözmek isterler bir söz, döndürür:bir AngularJS uygulamasında bir JS sözünü odataresources.js kütüphanesini kullanarak düzgün bir şekilde nasıl çözebilirim?

var myModule = angular.module("MyModule",['ODataResources']); 
myModule.controller("MyController",function($scope,$odataresource){ 
    $scope.results = 
     $odataresource("http://services.odata.org/V4/Northwind/Northwind.svc/Products") 
     .odata() 
     .filter('UnitPrice','>',10) 
     .filter('Discontinued',true) 
     .orderBy('UnitsInStock','asc') 
     .expand('Category') 
     .query(); 
}); 

ki, ben (yeni başlayanlar için) yapmak istiyorum ne döndürülen verilerin sürekli tekrarlanması ve basit konsolun üzerine oturum açmak için:

angular.forEach($scope.results, function(value, key) { 
     console.log(key + ' ' + value); 
    }); 

Mevcut haliyle, $ scope.results bir un çözülmesi sözdür.

Bu vaatin çözülmesini sağlamak ve gerçek olarak döndürülen veriler üzerinde yineleme yapmak için doğru sözdizimi nedir?

http://jsfiddle.net/eugene_goldberg/gmqvq9fx/1/

cevap

1

Sen query() yöntemine bir geri aramasında geçirerek yapabilirsiniz:

İşte benim şimdiki keman olduğunu. Fiddle

var myModule = angular.module("MyModule",['ODataResources']); 
myModule.controller("MyController",function($scope,$odataresource){ 
    $scope.results = 
     $odataresource("http://services.odata.org/V4/Northwind/Northwind.svc/Products") 
     .odata() 
     .filter('UnitPrice','>',10) 
     .filter('Discontinued',true) 
     .orderBy('UnitsInStock','asc') 
     .expand('Category') 
     .query(function(data) { 
      console.log('success'); 
      console.log(data); 
      angular.forEach(data, function(value, key) { 
      console.log(key + ' ' + value); 
      }); 
     }, function(err) { 
      console.log('There was an error: ', err); 
     }); 
}); 
İlgili konular