promesas example angularjs promise angular-resource

angularjs - example - promesas en angular 6



La promesa de recursos de AngularJS (4)

Si buscas una promesa en la llamada de recursos, debes usar

Regions.query().$q.then(function(){ .... })

Actualización: la sintaxis de promesa se cambia en las versiones actuales que lee

Regions.query().$promise.then(function(){ ..... })

Aquellos que han votado negativamente no saben de qué se trataba y quienes primero agregaron esta promesa al objeto de recurso. Usé esta función a finales de 2012, sí 2012.

Tengo un controlador simple que usa $ resource:

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

Estoy usando este controlador en una directiva (en la función de enlace)

var regions = scope.regions;

Pero las regiones no están definidas. Es bastante lógico que la llamada sea asincrónica.

Mi pregunta es ¿cómo puedo esperar para que el resultado y las regiones sean una matriz con todos los datos?

UPDATE :

Aquí la definición de la directiva

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) {} }; });


Si desea usar un método asíncrono, necesita usar la función de devolución de llamada por $ promise, aquí tiene un ejemplo:

var Regions = $resource(''mocks/regions.json''); $scope.regions = Regions.query(); $scope.regions.$promise.then(function (result) { $scope.regions = result; });


También podrías hacer:

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


/*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; });