首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用(@Inject(Http) http: Http)与不使用

使用(@Inject(Http) http: Http)与不使用
EN

Stack Overflow用户
提问于 2016-02-11 22:18:46
回答 1查看 516关注 0票数 1

在这个question之后,我有一个新的问题。这两种方式有什么区别?

这是我最初的代码:

代码语言:javascript
复制
import {Http, HTTP_PROVIDERS} from 'angular2/http';

@Component({

viewProviders: [HTTP_PROVIDERS],
..//

constructor(http: Http){
..//

但是,在进行测试时,他们提供了查找错误的代码:

代码语言:javascript
复制
import { Component, Inject} from 'angular2/core';
//above code should be at start.

constructor(@Inject(Http) http: Http) {

我认为无论是哪种方式,都是一样的,有人可以告诉我,区别是什么,或者仅仅是第一个类似于第二个,但是@Inject是隐式的,或者对我的英语来说是similar.Sorry。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 22:48:32

实际上,@Inject装饰器用于请求某种类型的依赖项。在此级别上也支持字符串。

如果您已经有了像ComponentInjectable这样的类的装饰符,并且在TypeScript中为参数指定了一个类型(在您的情况下),那么使用另一个装饰符是不必要的,因为解析将自动按类进行。如果不提供类型,@Inject装饰器将非常有用.

另一个用例。如果要使用ngUpgrade (混合Angular1 / Angular2应用程序),则Angular1工厂仅按名称注册,不能按类解析。所以在这里使用@Inject是必要的。参见这个plunkr:http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg?p=preview。它是用TypeScript编写的,但没有注释,但可以修改;)

您还可以查看此链接:

  • Pascal Precht - http://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html在Precht 2中的服务注入服务
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35351212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档