angular - 如何使用 "the angular way"在 Angular 2 中获取/设置/删除元素属性?

标签 angular

我一直在阅读一些关于 Angular 2 陷阱和应避免的内容的文章,其中一件事围绕着不直接访问 DOM。

我注意到 Renderer 非常有用,因为它包含一些可以帮助避免 DOM 陷阱的方法。但是,我注意到它不包含任何get 函数,仅包含set 函数,例如setElementAttributesetElementClass等等。

所以我的问题很简单,除了 getremove 版本,你如何使用上述功能?他们住在另一个类(class)吗?例如,您如何处理检索属性或类(class)?

最佳答案

要从 DOM 中删除属性,您需要提供 null 值。

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

myrenderer.setElementAttribute(elementRef.nativeElement, 'attributename', 'attributevalue');

删除属性:

myrenderer.setElementAttribute(elementRef.nativeElement, 'attributename', null);

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

elementRef.nativeElement.getAttribute('attributename');

关于angular - 如何使用 "the angular way"在 Angular 2 中获取/设置/删除元素属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895379/

相关文章:

http - Angular 2 无法读取未定义的属性 'get'

css - Angular Material design 复选框黑色前景色(符号颜色)

javascript - Angular 2 : is styleUrls relative to the current component?

javascript - 如何将事件数据从下拉列表传递到按钮 Angular 2

javascript - 保护 Node.js 中的 API 路由

javascript - angular ngrx store 参数化内存选择器

angular - 嵌套 : ENOENT: no such file or directory, 打开

angular - 无法获取 CanActivate 守卫中惰性模块的路由参数

javascript - Chrome 中完整的 Http 拦截器错误响应

node.js - 如何在 Angular 和 Node.js 中使用 socket.io?