Promesa de recursos AngularJS

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 asíncrona.

Mi pregunta es ¿cómo puedo hacer para esperar el resultado y que 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) {}
    };
  });

Respuestas a la pregunta(4)

Su respuesta a la pregunta