前言
最近刚学习的angular,在调后端的接口的时候遇到了错误,下面是我上网上搜的两个解决方案,因为方案一解决了我的问题,我就没有再搜别的解决方案,先把这俩个解决方案分享一下。
错误图片
方案一
原因:没有将Http添加到根模块
解决方案:在根模块AppModule
中的 providers:[]中。并在上面引用import {Http}
from ‘@angular/http’;如下
import {
Http}from
'@angular/http';
在 providers 加入
这个问题即可解决。
然而,当我这样改完之后又报了另外一个错误,Uncaught (in promise): Error: No provider for ConnectionBackend!
在跟模块AppModule中的imports:[]中添加HttpModule,在上面引入
import {
HttpModule }from
'@angular/http';
跟模块中加入
同时!!!!删除providers:[]中的Http,所有在修饰符中引用到的Http都要删除,不然还会报错。这里添加了HttpModule就足够了。
现在问题即可解决。
方案二
ERROR Error: Uncaught (in promise): Error: No provider for AuthGuard!
Error: No provider for AuthGuard!
1、首先确认,在文件中,已经加载
import { AuthGuard } from '../auth-guard.service';
const adminRoutes: Routes = [
<span style="white-space:pre;"> </span>{
<span style="white-space:pre;"> </span>...
<span style="white-space:pre;"> </span>canActivate: [AuthGuard],
<span style="white-space:pre;"> </span>...
<span style="white-space:pre;"> </span>}
]
2、接着确认,在app.module.ts中将AuthGuard引入到providers
import { AuthGuard } from './auth-guard.service';
@NgModule({
...
providers: [
...
AuthGuard
]
})
问题解决
我没把我的代码贴上来,因为报的都是一样的错,只有一个单词只差,大家遇到这样的问题照葫芦画片就可以,照着这个方案来就行,思路都已经写好了。