4

我已将应用程序从 Angular 4.2 升级到 5,但出现此错误: unhandled exception occurred while processing the request,更具体地说:

NodeInvocationException:没有 PlatformRef 的提供者!错误:没有 PlatformRef 的提供者!在 injectionError (e:\myapp\ClientApp\dist\vendor.js:12066:90)

该应用程序还使用webpackASP.NET Core.

我已经安装了node v9.1,和typescript 2.6.1

我也更新package.json了,使用以下命令:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest 

之后,运行以下命令:

 npm install --save-dev @ngtools/webpack@latest

我也HttpClient用过Http

import { HttpClient } from '@angular/common/http'; 
.....
 getThings() {
        return this.http.get('/api/things');

  }

如果我将 Angular 4 降级回来,该应用程序运行良好,我的想法是否有任何不正确的地方?

4

2 回答 2

18

我找到了解决方案:我使用了这个 Angular 5 Asp Core 模板

我已将依赖项更新为最新的 Angular 5 版本:npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest

npm install --save-dev @ngtools/webpack@latest

我已经重新编译 webpack --config webpack.config.vendor.js(必须全局安装 webpack npm install -g webpack@2.5.1:)

我已将 ClientApp/ASP 文件替换为手动更改的项目文件app.module

import { HttpModule } from '@angular/http';

import { HttpClientModule } from '@angular/common/http';

在服务文件中,而不是Http 我使用过的HttpClient

import { HttpClient } from '@angular/common/http'; 
于 2017-11-14T12:50:17.190 回答
2

您可以尝试两种不同的方法:

1)首先在你的 NgModule 的导入数组中导入 HttpClientModule。(如果你在组件中使用 HttpClient)

2) https://stackoverflow.com/a/39206501/2810015

注意:升级您的应用程序:https ://onlyforcoder.blogspot.in/2017/11/angular-5-upgrade-your-project-To-Angular5.html

于 2017-11-13T18:27:46.650 回答