Angular 2 - Bootstrapping the module for the browser

With an Angular root module and a starting component created, the next step to getting the foundation of an Angular app up and running is the code to bootstrap the module. 
We can add a file named main.ts to the app folder and put the bootstrap logic in that file. 

Angular actually has support for running on multiple platforms. The browser is considered a platform. 

The server and web worker are examples of other platforms. Other third-party bootstraps could also be used to provide support for other platforms. 

For this app, we are targeting the browser, so we need to bootstrap from that platform. 

Angular exports a platformBrowserDynamic function for targeting the browser from the platformBrowserDynamic-scoped package. So we can import platformBrowserDynamic from there. This function returns a platform object that has a bootstrap module function on it. That is the function you will use to bootstrap your root module on the platform. Note that earlier we were importing class types, and here we are importing a function. 

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';


The module-loading syntax supports importing all kinds of exported things, from class types and functions to constants, variables, and even JSON file data. 

Okay, so now we can make the call to the platformBrowserDynamic function which will return an instance of a platform object. That platform object has a method named bootstrapModule. So off of that platformBrowserDynamic call, we can call bootstrapModule

This function is expecting a root module and we have one already created from earlier named AppModule. So we can go up and write an import statement to load that type into this file, and then we can pass the AppModule type into the bootstrapModule function call. And with that, we have all the initial starting bits written to get this Angular app up and running in the browser. Let's open up a command line or terminal. 

And we can run the npm start command to kick off the TypeScript build and web server and we'll watch for changes. And over in the browser, we can see the content from the app component template is displayed. So for the remaining videos going forward, if you are following along with the Exercise Files locally, you can run the npm start command to start up the site and have it reload as you change code.