Filippo oretti
Filippo oretti

Reputation: 49873

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?

Upvotes: 12

Views: 14153

Answers (1)

KayakDave
KayakDave

Reputation: 24676

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.

Upvotes: 28

Related Questions