ERROR Error: StaticInjectorError(AppModule)[UserformService -> HttpClient]:
ERROR Error: StaticInjectorError(AppModule)[UserformService -> HttpClient]:
在尝试添加 PrimeNG 时 table 我在此处破坏了构建:https://github.com/BillyCharter87/Tech-O-Dex-UI/tree/BrokeIt
我记得我将我的 package.json
从 TypeScript 2.3.4 更新到 2.4.0,但由于(我认为)我使用 Headers
和 Http
我的 POST 电话。我尝试将其设置回 2.3.4 无济于事。我已经通过添加修复了我可以修复的内容:
import { HttpClient, HttpHeaders } from "@angular/common/http";
但仍然 运行 进入我现在 HttpClient
的错误。我试过像这样将 HttpClient
导入提供程序: providers: [HttpClient]
用于我的 app.module.ts.
完整错误如下:
AppComponent.html:9 ERROR Error: StaticInjectorError(AppModule)[HttpClient -> HttpHandler]:
StaticInjectorError(Platform: core)[HttpClient -> HttpHandler]:
NullInjectorError: No provider for HttpHandler!
确保您已导入 HttpClientModule
而不是直接将 HttpClient
添加到提供商列表。
有关详细信息,请参阅 https://angular.io/guide/http#setup。
HttpClientModule
实际上为您提供了HttpClient
。见 https://angular.io/api/common/http/HttpClientModule:
代码示例:
import { HttpClientModule, /* other http imports */ } from "@angular/common/http";
@NgModule({
// ...other declarations, providers, entryComponents, etc.
imports: [
HttpClientModule,
// ...some other imports
],
})
export class AppModule { }
将其导入 app.module.ts
import {HttpClientModule} from '@angular/common/http';
并在导入中添加这个
HttpClientModule
提供您在组件装饰器部分编写的所有自定义服务方式
示例:提供商:[服务名称]
注意:如果您使用服务在组件之间交换数据。宣布
提供商:[服务名称]
在模块级别
只是我在 appmodule.ts
中导入了
import { HttpClientModule } from '@angular/common/http';
imports: [
BrowserModule,
FormsModule,
HttpClientModule <<<this
],
我的问题已解决
就我而言,需要:
@Injectable({
providedIn: 'root' // <- ADD THIS
})
export class FooService { ...
而不仅仅是:
@Injectable()
export class FooService { ...
这个错误有两个原因
1) 如果你导入了两次HttpModule,在import数组中
2) 如果你还没有导入:
import { HttpModule, JsonpModule } from '@angular/http';
如果你想要那么运行:
npm 安装@angular/http
有两个可能的原因
1. 如果您在服务中使用 HttpClient,则需要在模块文件中导入 HttpClientModule 并在导入数组中提及它。
import { HttpClientModule } from '@angular/common/http';
如果您在服务中使用普通 Http,则需要在模块文件中导入 HttpModule 并在导入数组中提及它。
import { HttpModule } from '@angular/http
'
默认情况下,这在angular中不可用,那么您需要安装@angular/http
如果您愿意,可以在您的项目中同时使用 HttpClientModule 和 HttpModule。
在您的 app.module.ts
中导入 HttpClientModule
import {HttpClientModule} from '@angular/common/http';
...
@NgModule({
...
imports: [
//other content,
HttpClientModule
]
})
在您的 app.module.ts
中添加 HttpClientModule
并尝试,它肯定会起作用。
例如
import { HttpModule } from '@angular/http
在尝试添加 PrimeNG 时 table 我在此处破坏了构建:https://github.com/BillyCharter87/Tech-O-Dex-UI/tree/BrokeIt
我记得我将我的 package.json
从 TypeScript 2.3.4 更新到 2.4.0,但由于(我认为)我使用 Headers
和 Http
我的 POST 电话。我尝试将其设置回 2.3.4 无济于事。我已经通过添加修复了我可以修复的内容:
import { HttpClient, HttpHeaders } from "@angular/common/http";
但仍然 运行 进入我现在 HttpClient
的错误。我试过像这样将 HttpClient
导入提供程序: providers: [HttpClient]
用于我的 app.module.ts.
完整错误如下:
AppComponent.html:9 ERROR Error: StaticInjectorError(AppModule)[HttpClient -> HttpHandler]:
StaticInjectorError(Platform: core)[HttpClient -> HttpHandler]:
NullInjectorError: No provider for HttpHandler!
确保您已导入 HttpClientModule
而不是直接将 HttpClient
添加到提供商列表。
有关详细信息,请参阅 https://angular.io/guide/http#setup。
HttpClientModule
实际上为您提供了HttpClient
。见 https://angular.io/api/common/http/HttpClientModule:
代码示例:
import { HttpClientModule, /* other http imports */ } from "@angular/common/http";
@NgModule({
// ...other declarations, providers, entryComponents, etc.
imports: [
HttpClientModule,
// ...some other imports
],
})
export class AppModule { }
将其导入 app.module.ts
import {HttpClientModule} from '@angular/common/http';
并在导入中添加这个
HttpClientModule
提供您在组件装饰器部分编写的所有自定义服务方式 示例:提供商:[服务名称]
注意:如果您使用服务在组件之间交换数据。宣布 提供商:[服务名称] 在模块级别
只是我在 appmodule.ts
import { HttpClientModule } from '@angular/common/http';
imports: [
BrowserModule,
FormsModule,
HttpClientModule <<<this
],
我的问题已解决
就我而言,需要:
@Injectable({
providedIn: 'root' // <- ADD THIS
})
export class FooService { ...
而不仅仅是:
@Injectable()
export class FooService { ...
这个错误有两个原因
1) 如果你导入了两次HttpModule,在import数组中
2) 如果你还没有导入:
import { HttpModule, JsonpModule } from '@angular/http';
如果你想要那么运行:
npm 安装@angular/http
有两个可能的原因 1. 如果您在服务中使用 HttpClient,则需要在模块文件中导入 HttpClientModule 并在导入数组中提及它。
import { HttpClientModule } from '@angular/common/http';
如果您在服务中使用普通 Http,则需要在模块文件中导入 HttpModule 并在导入数组中提及它。
import { HttpModule } from '@angular/http
'
默认情况下,这在angular中不可用,那么您需要安装@angular/http
如果您愿意,可以在您的项目中同时使用 HttpClientModule 和 HttpModule。
在您的 app.module.ts
中导入 HttpClientModuleimport {HttpClientModule} from '@angular/common/http';
...
@NgModule({
...
imports: [
//other content,
HttpClientModule
]
})
在您的 app.module.ts
中添加 HttpClientModule
并尝试,它肯定会起作用。
例如
import { HttpModule } from '@angular/http