我想知道如何在Angular中添加动态属性。我的意思是说我需要传递属性名称。像这样的东西:
<button [attr.{{attrName}}]="isAllowedAttribute ? attrValue : null" >{{buttonTitle}}/button>
我已经看到this question,但是我想通过attrName
传递属性。
有什么主意吗?
答案 0 :(得分:1)
您可以使用指令设置动态属性。
请查看https://stackblitz.com/edit/angular-hnjfrg?file=src%2Fapp%2Fdynamic-attr.directive.ts,以了解如何使用它。
您可以使用如下指令:
<p [dynamicAttr]="'color'" attrValue="red"></p>
并访问如下指令值:
constructor(el: ElementRef) {
this.element = el;
}
ngAfterViewInit() {
console.log('Dynamic attribute: ', this.dynamicAttr);
this.element.nativeElement.style[this.dynamicAttr] = this.attrValue;
}
您可以根据使用情况使用挂钩。我刚刚使用ngAfterViewInit
来设置视图渲染后的所有内容。
答案 1 :(得分:0)