如何有条件地添加元素属性,例如复选框的checked
?
以前版本的Angular有NgAttr
和NgChecked
,它们似乎都提供了我想要的功能。然而,这些属性似乎不存在于Angular 2中,我也看不到提供此功能的其他方法。
发布于 2016-04-20 21:48:09
在angular-2中,属性语法是
<div [attr.role]="myAriaRole">
将role属性绑定到expression myAriaRole的结果。
所以可以像这样使用
[attr.role]="myAriaRole ? true: null"
发布于 2018-07-25 01:42:48
提炼Günter Zöchbauer的答案:
现在看起来不一样了。我尝试这样做是为了有条件地将href属性应用于锚标记。对于“不应用”情况,必须使用undefined。作为示例,我将使用一个有条件地应用了href属性的链接进行演示。
--编辑--看起来angular已经改变了一些东西,所以null
现在可以像预期的那样工作了。我已经将示例更新为使用null
而不是undefined
。
根据hyperlink spec,不带href属性的锚点标记将变为纯文本,指示链接的占位符。
对于我的导航,我有一个链接列表,但其中一个链接代表当前页面。我不希望当前页面链接是一个链接,但仍然希望它出现在列表中(它有一些自定义样式,但这个示例是简化的)。
<a [attr.href]="currentUrl !== link.url ? link.url : null">
我认为,这比在span和锚标签上使用两个*ngIf更干净。它也是为按钮添加禁用属性的完美工具。
发布于 2018-03-02 06:56:50
如果它是一个输入元素,你可以这样写....<input type="radio" [checked]="condition">
条件的值必须为true或false。
也适用于样式属性...<h4 [style.color]="'red'">Some text</h4>
https://stackoverflow.com/questions/36745734
复制相似问题