Angular 意外值';未定义';由模块';AppModule';
这里怎么了?我试图让它工作,但我得到的标题错误。我已将Angular 意外值';未定义';由模块';AppModule';,angular,angular2-routing,Angular,Angular2 Routing,这里怎么了?我试图让它工作,但我得到的标题错误。我已将包含在app.component.html中,该模板URL正由app.component.ts调用,但仍然没有运气 应用程序模块.ts: import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } fr
包含在app.component.html
中,该模板URL正由app.component.ts
调用,但仍然没有运气
应用程序模块.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 { }
应用程序路由.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 {}
这是因为我在一个index.ts文件中重复了导出:这是一个非常烦人且难以理解的错误。我使用Araxis Merge进行了一次文件比较,发现我的两个项目中的每个文件乍一看几乎都是相同的。然而,在进一步检查之后,我注意到文件结构中有一个细微的差异(起初我并不是真的在寻找,而是在寻找配置差异),我的第二个项目从一个ts文件生成了一个js文件
如您所见,左侧有一个js文件。右边的项目显示了我的节点生成器组件,并且运行时没有出现错误。造成问题的是右面因素
Webpack已获取该Javascript文件并尝试将其打包。显然,当Webpack遇到ts版本时,它将其传输到一个重复的js文件中,从而创建了一个混乱的运行时异常
t {__zone_symbol__error: Error: Unexpected value 'undefined' declared by the
module 'AppModule'
at t.m (http://localhost:……}
正如您所看到的,这个问题与配置无关,正如许多帖子让我相信的那样。如上所述,您的问题可能与配置有关,但在我的情况下并非如此 我遇到了相同的错误,有时会出现此问题,您只需使用ng serve
或您使用的任何CLI重新运行服务器,如前所述我遇到了相同的错误,我发现了原因。
原因是任何数组(例如:imports
property)中都有两个逗号,如下所示
@NgModule({
imports: [
CommonModule, FormsModule,,
]})
static component = [NewTestContainerComponent, NewTestInletComponent, NewTestStructureComponent]
试试这个可能对你有帮助:
停止并启动ng服务
服务。
现在页面可以导航了。这也发生在我身上,在@Component
中,我编写了选择器:所有员工
,在app.module.ts
模块中,它是在我的例子中,它是类名不同的,而在app.mdoule.ts中导出的{name}之间的名称也不同
祝我好运,在app.module.ts(Ionic 3)上
改为:
providers: [
StatusBar
, SplashScreen
并且可以工作。在Angular 2中体验到了这一点,如果您从同一位置导出某些内容,那么它与导入和相对路径有关
例如,在使用桶时,明确指定/
export * from './create-profile.component';
而不是
export * from 'create-profile.component';
这类似于建议重新运行ng service
,但这与我的情况无关,因为我的应用程序一直在IIS中运行。在我的例子中,我使用了ngbuild--watch
,但是停止并重新运行它修复了问题。我假设当它是增量构建时,某些构建不正确,但执行完整构建修复了问题。在我的场景中,我犯了如下错误
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class NewTestRoutingModule {
static component : [NewTestContainerComponent, NewTestInletComponent, NewTestStructureComponent]
}
和在模块中
@NgModule({
declarations: [LayersRoutingModule.component],
路由中的组件数组应该如下所示
@NgModule({
imports: [
CommonModule, FormsModule,,
]})
static component = [NewTestContainerComponent, NewTestInletComponent, NewTestStructureComponent]
/turbo_模块/@angular中出错/compiler@8.2.14/bundles/compiler.umd.js(2603:26)
模块“AppModule”声明的意外值“undefined”
我的问题是,导出类someClassName
在我的一个文件中使用了未知/错误的类名(复制/粘贴错误),并且从未在任何地方注册过(例如,`AppModule.ts*)。在我的情况下,这是由于生成问题。可能是您在应用程序模块中添加了一些组件或其他东西,但忘记了重建它。因此,在浏览器中,Angular无法识别应用程序模块中的新条目,因为需要生成才能正确注册它们。因此,对于开发模式,请关闭当前服务器并使用ng serve。我之所以会出现此错误,是因为我错误地将放置在测试床上。在每个块之前,将测试模块配置在之外。听起来好像在某个地方存在循环依赖关系。您能添加代码的plnkr吗?我之前看到过这个。我把头发拔了3个小时:(FWIW,和爱奥尼亚一样。这对我很有效。我尝试的第一件事。谢谢。我认为应该被标记为正确答案。我仍然没有得到它,是什么导致出现这样的错误?很好的发现,但为什么会发生这种情况?这是与@Alexander Zaldostanov相同的答案,只是更一般化了,所以我会有m在那篇文章上添加编辑或评论(我知道你可能还没有这个特权,对不起).这也是我的问题所在。你救了我一天,这就是我的问题所在。哇,当你发现原因是2个逗号后,真的很有趣。但在我给出这个答案之前,还不是很有趣。Thx!当你使用angular cli生成组件时,这个问题就出现了。Mohammed Osman-谢谢你!!为此浪费了整整一天的时间,真不敢相信多了一个逗号原因。错误消息之后的“undefined”(未定义)没有任何帮助,=“您有一个额外的逗号”(@Robert)您的评论应该是关于我的答案,而不是关于这个问题的。:)