Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 意外值';未定义';由模块';AppModule';_Angular_Angular2 Routing - Fatal编程技术网

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)您的评论应该是关于我的答案,而不是关于这个问题的。:)