Dependency injection 找不到Angular2 http服务

Dependency injection 找不到Angular2 http服务,dependency-injection,typescript,angular,Dependency Injection,Typescript,Angular,无法在angular2中使用简单的http服务。出于某种原因,我在这项服务上得到了404。它还不包含任何功能,但我觉得DI不起作用 在引导应用程序时,我一添加TestService,就会得到以下结果。获取404(未找到) index.html AngularJS2教程系列 System.config({ transpiler:'typescript', typescriptOptions:{emitDecoratorMetadata:true} }); 系统导入('./app/app.ts')

无法在angular2中使用简单的http服务。出于某种原因,我在这项服务上得到了404。它还不包含任何功能,但我觉得DI不起作用

在引导应用程序时,我一添加TestService,就会得到以下结果。获取404(未找到)

index.html


AngularJS2教程系列
System.config({
transpiler:'typescript',
typescriptOptions:{emitDecoratorMetadata:true}
});
系统导入('./app/app.ts');
加载。。。
app.ts

从'angular2/platform/browser'导入{bootstrap};
从'angular2/core'导入{Component};
从'angular2/core'导入{Injectable}
从“TestService”导入{TestService};
@组成部分({
选择器:“我的应用程序”,
模板:“我的第一个Angular 2应用程序”,
})
类AppComponent{
}
引导(AppComponent,[TestService]);
TestService.ts

从'angular2/Http'导入{Http};
从'angular2/core'导入{Injectable};
@可注射()
导出类测试服务{
构造函数(公共http:http){
}
}

您需要添加
Http
,将其作为提供者提供。有两种方法可以实现这一点:

1) 在全局级别,您可以在引导应用程序时指定:

bootstrap(AppComponent, [TestService, Http]);
2) 在您试图在其中使用的组件内部:

@Component({
  ...
  providers: [Http]
})
public class ...

注意作为提供商提供时,您还必须
导入
/
要求
Http。这将允许angular的DI识别将注入的内容。

我刚刚遇到了这个问题,通过将脚本引用添加到http捆绑包中修复了它:

<script src="node_modules/angular2/bundles/http.dev.js"></script>


在记住我在实现路由后添加了类似的资源之后,我尝试了它。希望这对其他人有帮助

这是因为默认情况下,您的“http.dev.js”不是源代码

步骤1:index.html


步骤2:main.ts

添加导入和添加“HTTP\U提供程序”

从'angular2/platform/browser'导入{bootstrap};
从'angular2/HTTP'导入{HTTP_提供者};
从“./app.component”导入{AppComponent};
引导(AppComponent,[HTTP_提供程序]);
步骤:3app.component.ts

导入Http并使用它

从'angular2/Http'导入{Http};
构造函数(http:http){
http.get('http://jsonplaceholder.typicode.com/posts/1)。订阅((数据)=>{
this.response=data.\u body;
})
}

例如,将Http添加到my app.ts和从'angular2/Http'导入Http会出现相同的错误,GET 404(未找到)。您仍然需要将
Http
设置为提供程序,以便DI知道如何注入它,直到相同的404未找到为止。我甚至剥离了所有内容,只从'angular2/Http'导入了{Http},但仍然找不到。图书馆一定出了什么问题?一旦http的导入出现,不管文件是什么,我都会得到404错误。啊,我明白了,你有一个完全不同的问题。这似乎是一个捆绑问题或参考问题,您需要发布构建/部署信息。我甚至建议用另一个问题问这个问题。话虽如此,一旦您获得构建/部署设置,您仍然需要将
Http
设置为提供商。好吧,很抱歉,也许我的问题不够清楚:)我只是遵循了这一点,仅通过npm安装了liveserver和typescript tsc,其他什么都没有。
Include 'http.dev.js'