How do I determine what zone is already loaded?
<p>I have an angular final app that loads lots of routes and modules.  I started getting a "Zone is already loaded" error in the console and now I'm getting it twice. </p>

<p>I've looked at the zone object to try and figure out what is going on, but that is almost impossible to decipher without knowing what zone is supposed to do.</p>

<p>Main.ts</p>

<pre><code>import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';

import { environment } from './app/';
import {AppModule} from './app/app.module';

enableProdMode();

platformBrowserDynamic().bootstrapModule(AppModule,[]);
</code></pre>

<p>app.module.ts (I omitted all of the imports):</p>

<pre><code>@NgModule({

    imports: [ BrowserModule, RouterModule.forRoot(appRoutes), SharedModule.forRoot(), 
               HomeModule, DocumentsModule, AboutModule, SettingsModule, FoodModule, CalculatorModule, 
               ThemesModule ],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ],
    providers: [ appRoutingProviders ]

}) 

export class AppModule {} 
</code></pre>

<p>app.component.ts</p>

<pre><code>@Component({
    moduleId: module.id,
    selector: 'kg-root',
    templateUrl: 'app.component.html',
    styleUrls: ['app.component.css']

})

export class AppComponent implements OnInit {
    private items: MenuItem[];
    appPageHeaderDivStyle: {};
    selectedTheme: Theme;
    errorMessage: string;
    loggedIn: LoggedIn;
    loggedInEmail: string = "";
    isLoggedIn: boolean;

    constructor(
        private as: AppMenuService,
        private ts: ThemeService,
        private ss: SettingsService,
        private ls: LoginService) {
    }

    ngOnInit() {

        this.ts.getNewTheme()
            .subscribe(
            theme =&gt; this.selectedTheme = theme,
            error =&gt; {
                this.errorMessage = error
            },
            () =&gt; this.completeGetNewTheme()
            );

        this.ts.setTheme("Pepper-Grinder");
        this.items = this.as.getNoLoginMenu();

        this.ls.getLoggedIn()
            .subscribe(
            loggedIn =&gt; {
                if (loggedIn.error != undefined &amp;&amp; loggedIn.error === "" &amp;&amp; loggedIn.email != "") {
                    this.items = this.as.getLoggedInMenu();

                    var us = this.ss.getUserSettings();
                    if (us != undefined &amp;&amp; us.theme != null &amp;&amp; us.theme != "") {
                        this.ts.setTheme(us.theme);
                    }
                }
                else {
                    this.items = this.as.getNoLoginMenu();
                    this.ts.setTheme("Pepper-Grinder");
                }

                this.completeLoggedIn(loggedIn.email);
            });
    }

    completeLoggedIn(email: string) {
        this.loggedInEmail = email;
        this.isLoggedIn = (this.loggedInEmail.length &gt; 0);

    }

    completeGetNewTheme() {
        this.appPageHeaderDivStyle = this.ts.getAppPageHeaderDivStyle();
    }
</code></pre>