AngularJS संसाधन वादा




promise angular-resource (3)

मेरे पास एक सरल नियंत्रक है जो $ संसाधन का उपयोग करता है:

 var Regions = $resource('mocks/regions.json');

 $scope.regions = Regions.query();

मैं इस नियंत्रक को निर्देश में उपयोग कर रहा हूं (लिंक फ़ंक्शन में)

var regions = scope.regions;

लेकिन क्षेत्रों को अपरिभाषित है। यह बहुत तर्कसंगत है कि कॉल असीमित है।

मेरा सवाल यह है कि परिणाम और क्षेत्रों का इंतजार करने के लिए मैं सभी डेटा के साथ एक सरणी कैसे कर सकता हूं?

UPDATE : 

यहां निर्देश की परिभाषा

app.directive('ngMap', function() {
  return {
    restrict: 'EA',
    replace: 'true',
    scope: {

    },
    template: '<div id="map"></div>',
    controller: 'AccordMapCtrl',
    link: function(scope, element, attrs) {
      var regions = scope.regions;
      console.log(regions);

      for (var region in regions) {}
    };
  });

आप यह भी कर सकते हैं:

Regions.query({}, function(response) {
    $scope.regions = response;
    // Do stuff that depends on $scope.regions here
});

यदि आप एसिंक्रोनस विधि का उपयोग करना चाहते हैं तो आपको $ वादे द्वारा कॉलबैक फ़ंक्शन का उपयोग करने की आवश्यकता है, यहां उदाहरण है:

var Regions = $resource('mocks/regions.json');

$scope.regions = Regions.query();
$scope.regions.$promise.then(function (result) {
    $scope.regions = result;
});

/*link*/
$q.when(scope.regions).then(function(result) {
    console.log(result);
});
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query().$promise.then(function(response) {
    return response;
});






angular-resource