【发布时间】:2018-12-25 14:15:44
【问题描述】:
我正在通过*ngFor 语句创建一堆input 元素,我想在其中一些上添加data-bv-integer="true" 属性,而在一些上我不想。是否出现取决于*ngFor 项目的属性。
有可能吗?
我尝试添加 [attr.data-bv-integer]="false" 作为测试,看看这是否会删除该项目,但它不会。
【问题讨论】:
我正在通过*ngFor 语句创建一堆input 元素,我想在其中一些上添加data-bv-integer="true" 属性,而在一些上我不想。是否出现取决于*ngFor 项目的属性。
有可能吗?
我尝试添加 [attr.data-bv-integer]="false" 作为测试,看看这是否会删除该项目,但它不会。
【问题讨论】:
这是您可以使用 angular 为 HTML 元素动态添加属性的方法:
[<<attribute>>]="<<condition>> ? '<<if true>>' : '<<if false>>'"
在你的情况下是:
[attr.data-bv-integer]="shouldShow() ? 'true' : null"
注意:null 会移除该属性
编辑:添加了“attr”。谢谢@ConnorsFan
【讨论】:
input 上定义,所以这是一个运行时错误。
attr. 前缀。
false,而是null。我是如此接近:)
type="number"吗?
[attr.data-bv-integer]="condition || null"。