2017-01-10 5 views
12

Co jest nie tak? Próbuję sprawić, żeby działało, ale dostaję ten błąd w nagłówku. Zawarłem <router-outlet></router-outlet> w app.component.html, który jest templateUrl wywoływany przez app.component.ts, nadal nie ma szczęścia.Nieoczekiwana wartość "niezdefiniowana" zadeklarowana przez moduł "AppModuł"

app.module.ts:

import { NgModule }    from '@angular/core'; 
import { BrowserModule }  from '@angular/platform-browser'; 
import { FormsModule }   from '@angular/forms'; 
import { RouterModule, Routes } from '@angular/router'; 


import { AppComponent } from './app.component'; 
import { AppRoutingModule } from './app-routing.module'; 
import { TopnavComponent } from './components/navbars/topnav/topnav.component'; 
import { LeftnavComponent } from './components/navbars/leftnav/leftnav.component'; 
import { LeftnavsecondaryComponent } from './components/navbars/leftnav-secondary/leftnav-secondary.component'; 
import { WorldofwarcraftComponent } from './components/games/worldofwarcraft/worldofwarcraft.component'; 

@NgModule({ 
    imports: [ BrowserModule, FormsModule, AppRoutingModule ], 
    declarations: [ AppComponent, TopnavComponent, LeftnavComponent, LeftnavsecondaryComponent, WorldofwarcraftComponent ], 
    bootstrap: [ AppComponent ] 
}) 

export class AppModule { } 

app-routing.module.ts:

import { NgModule }    from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 

import { WorldofwarcraftComponent } from './components/games/worldofwarcraft/worldofwarcraft.component'; 

const appRoutes: Routes = [ 
    { path: 'worldofwacraft', component: WorldofwarcraftComponent } 
]; 

@NgModule({ 
    imports: [ RouterModule.forRoot(appRoutes) ], 
    exports: [ RouterModule ] 
}) 

export class AppRoutingModule {} 
+2

Wygląda na to, że gdzieś istnieje zależność cykliczna. – cartant

+0

możesz dodać plnkr swojego kodu –

Odpowiedz

2

Było to spowodowane, bo powtórzył eksport w jednym z moim indeksie. Plik ts:

2

Jest to bardzo irytujący i trudny do zrozumienia błąd. Zrobiłem porównanie plików za pomocą Araxis Merge, ponieważ każdy plik w moich dwóch projektach był na pierwszy rzut oka prawie identyczny. Jednak po dalszym przeglądzie zauważyłem niewielką różnicę w strukturze pliku (której początkowo nie szukałem, a raczej szukałem różnic konfiguracyjnych), że mój drugi projekt wygenerował plik js z jednego z plików ts.

Jak widać po lewej stronie znajduje się plik js. Projekt z prawej strony pokazał mój składnik budujący węzły i przebiegał bezbłędnie. Prawa strona była przyczyną problemu.

Extra unneeded file

Webpack wybrał się, że plik JavaScript i starał się go zapakować. Oczywiście, gdy Webpack napotkał wersję ts, przetransponował ją do duplikatu pliku js, tworząc tym samym mylący wyjątek czasu wykonywania.

t {__zone_symbol__error: Error: Unexpected value 'undefined' declared by the 
module 'AppModule' 
    at t.m (http://localhost:……} 

Jak widać, ten problem nie miał nic wspólnego z konfiguracją, ponieważ wiele postów skłoniło mnie do uwierzenia. Jak wspomniano powyżej, twój problem może dotyczyć konfiguracji, ale w moim przypadku tak się nie stało.

23

mam ten sam błąd, czasami ten problem występuje i trzeba tylko, aby ponownie uruchomić serwer korzystając ng serve lub cokolwiek CLI użyć, jak wspomniano here

+1

Tak! To zadziałało dla mnie .. Odbijam głowę tym problemem od 1 godziny i w końcu znalazłem to –

+1

Szkoda, że ​​nie widziałem tego wcześniej. Wyciągam włosy na 3 godziny :( – M22an

+0

FWIW, to samo z Ionicem – Damon

4

I w obliczu tego samego błędu i odkryłem przyczynę. Powodem były dwa przecinki, w dowolnej tablicy (na przykład: imports Właściwość) w ten sposób.

+0

Uratowałeś mój dzień! –

+0

Dzięki. –