angular-in-memory-web-api:ctorParameters.map不是一个函数

时间:2016-12-12 19:17:01

标签: javascript angular

我使用0.1.17的Angular2 In-Memrory API以及Angular CLI(使用Webpack)。我按照HTTP tutorial逐字记录了所有步骤,我收到了以下错误:

reflection_capabilities.js:58 Uncaught TypeError: ctorParameters.map is not a function
    at ReflectionCapabilities.parameters (http://localhost:4200/main.bundle.js:48626:45)

这是我的app.module.js导入:

imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    AppRoutingModule,
    SharedModule,
    CoreModule,

    // Fake API -- remove for production
    InMemoryWebApiModule.forRoot(InMemoryDataService)
  ],

3 个答案:

答案 0 :(得分:4)

似乎您的版本不匹配。您正在使用的角度版本希望ctorParameters是一个数组。但是在InMemoryWebApiModule v0.1.17中提供了一个功能。升级到v0.2.0。在这个版本中提供了一个数组。

答案 1 :(得分:0)

如果在参数分配中在模板==而非=中放入了错误的符号,则会引发此错误。

答案 2 :(得分:0)

这个bug似乎与某些软件包相关联,期望Angular核心版本与实际安装的版本不同。

通过查看ng build的错误报告,我能够找出问题的原因:

npm WARN @angular/platform-server@2.4.4 requires a peer of @angular/core@2.4.4 but none was installed.

这让我意识到我的一个软件包期望Angular处于v2.4.4,但我使用的是v2.0.1。我更新了我的package.json,将这两个软件包设置为我的核心版本,如下所示:

"dependencies": {
    "@angular/core": "2.0.1",
    "@angular/platform-server": "2.0.1",
}

你的问题可能不是@ angular / platform-server,但我希望这有助于调试它