1

In a $stateProvider state I want to:

  • Load a service JS file
  • Resolve a service function (API call)
  • Pass resulting data to controller

controllers/my-controller.js

angular.module('app').
    controller('MyController', ['$scope', function($scope, serviceData){
        console.log(serviceData)
}]);

config.js

...

.state('main', {
    url: "/",
    templateUrl: 'templates/my-template.html',
    controller: 'MyController',
    resolve: {
        dependencies: ['$ocLazyLoad', function($ocLazyLoad) {
            return $ocLazyLoad.load([
                'controllers/my-controller.js'
            ])
        }],
        serviceData: ['$ocLazyLoad', '$injector', function($ocLazyLoad, $injector) {
            return $ocLazyLoad.load('services/my-service.js')
                .then(function(){
                    var $myService = $injector.get('MyService');
                    return $myService.GetData();
                })
        }]
    }
})

I would expect the controller to console.log the data coming back from the API call that MyService does (not included for brevity, but that part works). Instead, I get undefined.

Any ideas? Thanks!

Michael Gradek
  • 2,628
  • 3
  • 29
  • 35

0 Answers0