Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular js - resolve and run() order of execution

Thanks to this answer AngularJS app.run() documentation? i can see the order in which modules are ran by Angular, my question is:

if I have:

app.config(function () {
    $routeProvider.when('/', {
        ....
        resolve: {
            // something to resolve
        }
    });
});

app.run(function () {
    // something to run
});

Will run() be executed before the routeProvider resolve:{} is resolved?

like image 236
itsme Avatar asked Jun 16 '14 17:06

itsme


1 Answers

At least in my experiments, yes the resolve is run after app.run.

In this jsfiddle you can see the calling order I got was:

  1. app config
  2. app run
  3. directive setup
  4. directive compile
  5. app controller
  6. directive link
  7. ** Data resolve called **
  8. new route's controller

As you can see in the fiddle, I checked this by using a console.log function as the value of a property of the object handed to resolve:

resolve: {
            data: function() {
              console.log('Data resolve called');
            }
         }

You can use this same approach in your code to check when routeProvider begins checking the dependencies.

like image 152
KayakDave Avatar answered Oct 17 '22 08:10

KayakDave