如何使用"角度方式"获取/设置/删除Angular 2中的元素属性?

Chr*_*odz 12 angular

我一直在阅读一些关于Angular 2陷阱的文章以及要避免的内容,其中一个问题围绕着不直接访问DOM.

我注意到它Renderer非常有用,因为它包含一些可以帮助避免DOM陷阱的方法.然而,我注意到,它不包含任何get功能,只set等功能setElementAttribute,setElementClass等等.

所以我的问题很简单,你如何使用上述功能,但作为getremove版本?他们是否住在另一个班级或者您如何使用例如检索属性或类?

Dav*_*vid 17

要从DOM中删除属性,请提供null值.

设置属性(如果您愿意,属性值可以是空字符串):

myrenderer.setElementAttribute(elementRef.nativeElement, 'attributename', 'attributevalue');
Run Code Online (Sandbox Code Playgroud)

要删除属性:

myrenderer.setElementAttribute(elementRef.nativeElement, 'attributename', null);
Run Code Online (Sandbox Code Playgroud)

要获取元素属性值,您需要传递给setElementAttribute的nativeElement,因此您可以使用它来使用标准Javascript获取属性值:

elementRef.nativeElement.getAttribute('attributename');
Run Code Online (Sandbox Code Playgroud)


Gün*_*uer 8

Angular2不提供任何支持来从DOM ElementRef和事件中获取任何内容.
Angular2方法是维护模型中的状态并更新DOM以反映该状态.

如果您需要从DOM读取,您可以使用直接DOM访问或提供自定义Renderer,提供您在默认情况下缺少的功能Renderer.

自定义渲染器的示例