2016-09-23 18 views
1

私は多くのルートとモジュールを読み込む角最終アプリを持っています。私はコンソールに "Zone is already loaded"というエラーが出るようになったので、今度はそれを2回取得しています。既にロードされているゾーンを確認するにはどうすればよいですか?

私はゾーンオブジェクトを調べて、何が起こっているのか把握しようとしていますが、これは、ゾーンが何をすべきかを知らずに解読することはほとんど不可能です。私は仮定する

@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(); 
    } 

答えて

2

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は輸入のすべてを省略)このエラーは、特定のゾーンがすでにロードされていることを意味します。これは、 "zone.js"が既にロードされていることを意味します。 Angular-cliに切り替えると、既にangi-cli-build.jsにロードされています。そこで、index.htmlから削除して問題を解決しました。

他の誰かがこのエラーを迂回する場合に備えて、私はこれを投稿しています。

+0

私は同じ問題を抱えていますが、私はzone.jsをリロードすることを知っています。私はロードしなければならないかどうかチェックする –

関連する問題