Error:No provider for ConnectionBackend

前言

最近刚学习的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  
    ]  
})  

问题解决

我没把我的代码贴上来,因为报的都是一样的错,只有一个单词只差,大家遇到这样的问题照葫芦画片就可以,照着这个方案来就行,思路都已经写好了。

猜你喜欢

转载自blog.csdn.net/yyx3214/article/details/80459733