我读了一篇关于如何将Http服务注入Angular2应用程序的文章。
https://angular.io/docs/ts/latest/api/http/HTTP_PROVIDERS-let.html
import {HTTP_PROVIDERS, Http} from 'angular2/http';
@Component({
selector: 'app',
providers: [HTTP_PROVIDERS],
....
我认为Http服务已经包含在HTTP_PROVIDERS中。 (如下文所述,根据文件)。
"The providers included in HTTP_PROVIDERS include:
Http
XHRBackend
BrowserXHR - Private factory to create XMLHttpRequest instances
RequestOptions - Bound to BaseRequestOptions class
ResponseOptions - Bound to BaseResponseOptions class"
如果是这样,为什么我们仍然需要导入Http?我们能做到吗
import {HTTP_PROVIDERS} from 'angular2/http';
另一方面,更具体地说,我们可以将组件提供商更改为
providers: [Http]
?
或者在引导程序中,我们可以bootstrap(app, [Http])
吗?
答案 0 :(得分:5)
HTTP_PROVIDERS
是deprecated。
例如:如this comment中所述,而不是:
@NgModule({
declarations: [AppComponent],
providers: [
HTTP_PROVIDERS
],
...
})
export class AppModule { }
使用此
@NgModule({
declarations: [AppComponent],
imports: [
HttpModule
],
...
})
export class AppModule { }
注意:您导入imports
中@NgModule
的模块,而不是@Component
。
答案 1 :(得分:1)
在Angular2中,我们不仅可以从模块导入服务,还可以导入指令和值(常量)。我们导入那些“TYPES”以实现TypeScript的强类型功能。所以我们稍后可以在我们的组件类代码中引用它。