@ngdoc overview
@name Developer Guide: Initializing Angular: Automatic Initialization
@description

For Angular to manage the DOM for your application, it needs to compile some or all of an HTML page.  Angular does this initialization automatically when you load the angular.js script into your page and insert an `ngApp` directive (attribute) into one of the page's elements.  For example, we can tell Angular to initialize the entire document:

<pre>
<!doctype html>
<html ng-app>
  <head>
    <script src="angular.js"></script>
  </head>
  <body>
    I can add: {{ 1+2 }}.
  </body>
</html>
</pre>

You can also tell Angular to manage only a portion of a page.  You would want to do this if you are using some other framework to manage other parts of the page.  You do this by placing the `ngApp` directive on one or more container elements in the document.  For example:

<pre>
<div ng-app>
  I can add: {{ 1+2 }}
</div>
</pre>

You can also ask `ngApp` to load additional {@link api/angular.module modules} containing services, directives or filers that you'll use on the page.

<pre>
<div ng-app="AwesomeModule">
...
</div>
</pre


From a high-level, here's what Angular does during the initialization process:

1. The browser loads the page, and then runs the Angular script. Angular then waits for the
`DOMContentLoaded` (or 'Load') event to attempt to initialize.

2. Angular looks for the `ngApp` directive. If found it compilies the DOM element containing `ngApp` and its children.

3. Angular creates a global variable `angular` and binds all Angular APIs to this object's fields.


## Related Topics

* {@link dev_guide.compiler Angular HTML Compiler}
* {@link dev_guide.bootstrap Initializing Angular}
* {@link dev_guide.bootstrap.manual_bootstrap Manual Initialization}

## Related API

{@link api/angular.module.ng.$compile Compiler API}
