I often use promise with routeUI Resolve, which can resolve promise first, 
then inject data dependency into a controller.

Best regards
  Tom  

On Tuesday, July 22, 2014 7:01:52 AM UTC+8, [email protected] wrote:
>
> So I've pretty much got to grips with the whole promise, defer concept but 
> I'm struggling with a couple of final hurdles.
>
> My factory is working fine and querying an external rest service without 
> issues
>
>  .factory('GetData', ['$resource',
>   function($resource){
>     
>     return $resource('http://my-rest-server/rest/ml-sql/country_locations'
> , {}, {
>       query: {
>        method:'GET',
>        isArray:false
>        
>    }
>       
>     })
>     
>   }])
>
>   
> In my controller I'm injecting the service and successfully loading it 
> however I have an issue in that init needs to run after all the data has 
> been returned from the service [it won;t work unless the data is available 
> up front].
>
> I've managed to implement a very dirty hack whereby I just delay the 
> function using $timeout which gives the data time to load. While this works 
> I know it isn't a solution as the time required could vary massively, it 
> needs to be resolved prior to running.
>
> I think I'm pretty close I just don't know how to complete the final step. 
> Any pointers would be much appreciated.
>
>
>       $scope.locations = GetData.query();
>                   
>       var init;
>
>       init = function() {
>         //do some stuff
>       };
>       
>       var defer = $q.defer();
>             
>       defer.promise
>        .then(function () {
>        init();
>       });
>             
>       $timeout(function() {
>        defer.resolve();
>       }, 1000);
>
>
> Many thanks
>
> Antony
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to