2016-09-23 3 views
1

Ich habe eine angular final App, die viele Routen und Module lädt. Ich fing an, einen "Zone ist schon geladen" -Fehler in der Konsole zu bekommen und jetzt bekomme ich es zweimal.Wie kann ich feststellen, welche Zone bereits geladen ist?

Ich habe mir das Zonenobjekt angeschaut, um herauszufinden, was vor sich geht, aber das ist fast unmöglich zu entziffern, ohne zu wissen, welche Zone es tun soll.

Main.ts

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,[]); 

app.module.ts (I alle der Importe weggelassen):

@NgModule({ 

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

}) 

export class AppModule {} 

app.component.ts

@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 => this.selectedTheme = theme, 
      error => { 
       this.errorMessage = error 
      }, 
      () => this.completeGetNewTheme() 
      ); 

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

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

        var us = this.ss.getUserSettings(); 
        if (us != undefined && us.theme != null && 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 > 0); 

    } 

    completeGetNewTheme() { 
     this.appPageHeaderDivStyle = this.ts.getAppPageHeaderDivStyle(); 
    } 

Antwort

2

I angenommen, dass Dieser Fehler bedeutete, dass eine bestimmte Zone bereits geladen war. Es scheint, dass dies bedeutet, dass "zone.js" bereits geladen wurde. Als ich zu Angular-cli wechselte, war es schon im angular-cli-build.js geladen. So löste es das Problem aus dem index.html.

Ich poste dies für den Fall, dass jemand anderen über den Fehler läuft.

+0

Ich bekomme das gleiche Problem, aber ich weiß, ich muss die zone.js neu laden. Ich muss überprüfen, ob es geladen ist, muss ich nicht laden –

Verwandte Themen