关于javascript:如何在Angular 2中添加条件属性?

How to add conditional attribute in Angular 2?

我如何有条件地添加元素属性,例如 复选框的checked

以前版本的Angular有NgAttr,我认为NgChecked似乎都提供了我所追求的功能。 但是,Angular 2中似乎不存在这些属性,我看不到提供此功能的其他方法。


null删除它:

1
[attr.checked]="value ? '' : null"

要么

1
[attr.checked]="value ? 'checked' : null"


在angular-2属性语法中

1
 

将属性角色绑定到表达式myAriaRole的结果。

所以可以使用像

1
[attr.role]="myAriaRole ? true: null"


精炼GünterZ?chbauer回答:

现在这似乎有所不同。我试图这样做有条件地将href属性应用于锚标记。您必须对"不适用"案例使用undefined。作为一个例子,我将演示一个有条件地应用了href属性的链接。

根据超链接规范,没有href属性的锚标记将变为纯文本,表示链接的占位符。

对于我的导航,我有一个链接列表,但其中一个链接代表当前页面。我不希望当前页面链接成为链接,但仍希望它出现在列表中(它有一些自定义样式,但此示例已简化)。

1
 

我认为这比在span和anchor标签上使用两个* ngIf更干净。


如果它是一个输入元素,你可以写像......
条件的值必须为true或false。

也适用于风格属性......

Some text


你可以用它。


内联地图也很方便。

它们也更加明确和可读。

1
[class]="{ 'true': 'active', 'false': 'inactive', 'true&false': 'some-other-class' }[ trinaryBoolean ]"

如果您不喜欢三元语法或ngIf s(等),只需另一种方法来完成同样的事情。