模块'AppModule'声明的意外值'undefined'

问题描述 投票:49回答:8

这有什么不对?我试图让它工作,但我在标题中得到了错误。我把<router-outlet></router-outlet>包括在app.component.htmltemplateUrl称为app.component.ts,仍然没有运气。

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 {}
angular angular2-routing
8个回答
105
投票

我得到了同样的错误,有时会出现这个问题,你只需要使用ng serve或你使用的任何CLI重新运行服务器,如上所述here


47
投票

我遇到了同样的错误,我发现了原因。原因是两个逗号,在任何数组中(例如:imports属性)都是这样的。

@NgModule({
  imports: [
  CommonModule, FormsModule,,
]})

7
投票

试试这可能对你有所帮助: 停止并启动ng-serve服务。现在页面可以导航。


4
投票

这是因为我在我的一个index.ts文件中重复导出:


3
投票

这是一个非常烦人且难以理解的错误。我使用Araxis Merge进行了文件比较,发现我的两个项目中的每个文件乍一看都几乎相同。然而,在进一步审查之后,我注意到文件结构略有不同(我一开始并不是真正想要的,而是我在寻找配置差异)我的第二个项目已经从其中一个ts文件生成了一个js文件。

正如您在左侧看到的那样,有一个js文件。右侧项目显示了我的节点构建器组件并且运行时没有错误。右边是造成这个问题的原因。

Extra unneeded file

Webpack已经拿起那个Javascript文件并尝试打包它。显然,当Webpack遇到ts版本时,它会将其转换为重复的js文件,从而产生令人困惑的运行时异常。

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

你可以看到这个问题与配置无关,因为许多帖子让我相信。如上所述,您的问题可能与配置有关,但在我的情况下却没有。


0
投票

这也发生在我身上,在@Component我写了选择器:all-employees和在app.module.ts模块它是<all- employees></all- employees>


0
投票

在我的情况下,它的类名不同,名称,即在app.module.ts中导出的​​{name}之间的名称是不同的

祝好运


0
投票

就我而言,在app.module.ts(Ionic 3)上

providers: [
    , StatusBar
    , SplashScreen

变成:

providers: [
     StatusBar
    , SplashScreen

并且工作。


0
投票

使用Angular 2体验了这一点,如果你从同一个地方输出内容,它会导致它与导入和相对路径有关

例如,当使用桶时,明确指定./

export * from './create-profile.component';

代替

export * from 'create-profile.component';
© www.soinside.com 2019 - 2024. All rights reserved.