【问题标题】:Dynamically add attribute to input element [duplicate]将属性动态添加到输入元素[重复]
【发布时间】:2018-12-25 14:15:44
【问题描述】:

我正在通过*ngFor 语句创建一堆input 元素,我想在其中一些上添加data-bv-integer="true" 属性,而在一些上我不想。是否出现取决于*ngFor 项目的属性。

有可能吗?

我尝试添加 [attr.data-bv-integer]="false" 作为测试,看看这是否会删除该项目,但它不会。

【问题讨论】:

    标签: angular angular6


    【解决方案1】:

    这是您可以使用 angular 为 HTML 元素动态添加属性的方法:

    [<<attribute>>]="<<condition>> ? '<<if true>>' : '<<if false>>'"

    在你的情况下是:

    [attr.data-bv-integer]="shouldShow() ? 'true' : null"

    注意:null 会移除该属性

    编辑:添加了“attr”。谢谢@ConnorsFan

    【讨论】:

    • 除了 data-bv-integer 没有在 input 上定义,所以这是一个运行时错误。
    • @Gargoyle - 他忘记了attr. 前缀。
    • 啊,所以删除它的不是false,而是null。我是如此接近:)
    • @Gargoyle 你试过用type="number"吗?
    • 另一种语法是:[attr.data-bv-integer]="condition || null"
    猜你喜欢
    • 2013-08-07
    • 2016-09-12
    • 2015-01-09
    • 2015-12-06
    • 2018-04-05
    • 2019-06-24
    • 2017-02-26
    • 2018-08-10
    • 2013-09-09
    相关资源
    最近更新 更多