如果定义了元素属性,Angular中是否可以仅渲染它?
例如,我有一个按钮组件
export class ButtonComponent {
/** The name id to be given to the button */
@Input() id: string;
/** The name to be given to the button */
@Input() name: string;
}
使用模板
<button
[id]="id"
[name]="name"
>
<ng-content></ng-content>
</button>
如果我传递了一个id而不是一个名字,它会呈现一个名称属性,其值为undefined。
<button _ngcontent-c1="" id="login" name="undefined">
Login
</button>
如果没有像下面那样提供名称输入,是否可以不渲染name属性?
<button _ngcontent-c1="" id="login">
Login
</button>
答案 0 :(得分:2)
如果属性绑定,如果我们将null
或undefined
传递给它,则angular将不会呈现属性。所以你的解决方案看起来像:
[attr.name]="name"