是一个手动机制,让Angular 2知道必须注入参数。 它可以这样使用:
在上面示例中,我们要求chatWidget
是单例的,Angular通过调用@Inject(ChatWidget)
与类符号关联。 需要特别注意的是,我们使用ChatWidget
的类型和作为其单例的引用。 我们没有使用ChatWidget
来实例化任何东西,Angular在幕后帮我们做好了。
让Angular 2知道一个类可以用于依赖注入器。 如果类上有其他Angular 2装饰器或没有任何依赖,@Injectable()
不是必须的。
这里有一个用标记的 示例:
在上面的例子中,Angular 2的注入器通过使用类型信息来确定要注入到ChatWidget
的构造函数中。 这是可能的,因为这些特定的依赖关系是类型化的,并且不是原始类型。 在某些情况下,Angular 2的DI需要更多的信息,而不仅仅是类型。