我已将应用程序从Angular 4.2升级到5,但出现此错误:
unhandled exception occurred while processing the request
,更具体地说:
NodeInvocationException:没有PlatformRef的提供程序!错误:没有 PlatformRef的提供者!在injectionError (E:\ MyApp的\ ClientApp \ DIST \ vendor.js:12066:90)
该应用还使用webpack和ASP.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,该应用程序运行良好,我的思路中是否有任何错误的做法?
答案 0 :(得分:18)
我找到了解决方案: 我已经使用了这个Angular 5 Asp Core template
我已将家属更新为最新的角度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';
答案 1 :(得分: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