angular - Angular 2 中 Renderer 和 ElementRef 之间的区别

标签 angular angular2-directives elementref angular-renderer2 angular-renderer

RendererElementRef 有什么区别?在 Angular 中,两者都用于 DOM 操作。我目前单独使用 ElementRef 来编写 Angular 2 指令。如果我获得有关 Renderer 的更多信息,我可以在未来的指令中使用它。

最佳答案

Renderer 是一个对 DOM 进行部分抽象的类。 使用 Renderer 操作 DOM 不会破坏服务器端渲染或 Web Worker(直接访问 DOM 会破坏)。

ElementRef 是一个可以保存对 DOM 元素的引用的类。 这又是一种抽象,不会在浏览器 DOM 实际上不可用的环境中中断。

如果 ElementRef 被注入(inject)到组件中,则注入(inject)的实例是对当前组件的宿主元素的引用。

还有其他方法可以获取 ElementRef 实例,例如 @ViewChild()@ViewChildren()@ContentChild( ), @ContentChildren()。在这种情况下,ElementRef 是对模板或子项中匹配元素的引用。

RendererElementRef 不是“这个或那个”,而是它们必须一起使用才能获得完整的平台抽象。

Renderer 作用于 DOM,ElementRef 是对 DOM 中元素的引用,Renderer 作用于该元素。

关于angular - Angular 2 中 Renderer 和 ElementRef 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785118/

相关文章:

javascript - 获取响应不会在 Angular 2 代码中呈现

Angular 2 自定义服务未注入(inject)指令中

css - 在 Angular2 应用程序开始不起作用之前设置加载状态的样式?

Angular 语言服务管道导致标识符未定义错误

javascript - Angular 仅显示一次表格标题,如果没有数据则隐藏标题

angular - 在 Angular 的一项服务中使用 "ElementRef"时出错

javascript - 运行 ngserve Angular5 时出错

angular - document.getElementsByTagName ('body' ) 的替代方案, Angular 为 2/5/6

javascript - Angular 输入类型日期时间本地验证

Angular 2指令错误