我是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
?
这些情景背后的机制或设计模式是什么?
基于我的小编码经验,如果有人要求我实现这种机制,我不知道如何做到这一点。
感谢您的耐心等待。
答案 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'