Angular2如何在指令构造函数中注入变量

时间:2016-10-20 10:36:20

标签: angular

我是Angular2的新手用户。
我在Doc

中看到了这些代码
@Directive({ selector: '[myHighlight]' })
export class HighlightDirective {
    constructor(el: ElementRef, renderer: Renderer) {
       renderer.setElementStyle(el.nativeElement, 'backgroundColor', 'yellow');
    }
} 

我知道如何使用Directive,ElementRef和Renderer 我的问题是angular2如何在构造函数方法中注入这些变量?
为什么我可以在课程构建后使用this.el? 这些情景背后的机制或设计模式是什么? 基于我的小编码经验,如果有人要求我实现这种机制,我不知道如何做到这一点。

感谢您的耐心等待。

  • 不是英语母语人士,抱歉英语不好。

2 个答案:

答案 0 :(得分:1)

它被称为Dependency Injection。 请参阅官方文档:https://angular.io/docs/ts/latest/guide/dependency-injection.html

这是自动完成的,你不必关心它! Angular2只需知道您尝试在constructor中实例化的那些类型。

您甚至可以创建自己的Service和'标记'它与装饰者一样@Injectable()

请参阅有关创建自定义服务的文档:https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

答案 1 :(得分:0)

你的意思:

 constructor(private el: ElementRef, private renderer: Renderer) {}

确保您导入了所有必要的东西:

import {Directive, Inject, ElementRef, Renderer} from '@angular/core'