【发布时间】:2017-12-21 20:16:14
【问题描述】:
是否可以在服务中或仅在组件中使用渲染器?
如果我将渲染器注入到服务中,我会收到错误,即缺少渲染器提供程序。
查看 plunker 的控制台:
import {Injectable, Component, Renderer, ElementRef} from 'angular2/core';
@Injectable()
class TestService {
constructor(
private _renderer: Renderer
) {}
renderElement(elementRef: any) {
this._renderer.createElement(elementRef.nativeElement, 'div');
}
}
【问题讨论】:
-
您希望为
elementRef注入什么元素?对于组件或指令,这是当前元素。服务没有。我不使用 TS,但我很确定ElementRef构造函数参数需要一个具体类型才能让注入器知道要传递什么(ElementRef而不是any) -
是的,我忘了添加 ElementRef 类型,但它也不能使用它。
-
没想到会这样。我也只是想指出这一点。没有要为服务注入的元素。您希望注入什么元素?你想在哪里更新 DOM?
-
谢谢,这很聪明。它工作正常。如果你回答...
标签: angular