有条件地添加属性

Conditionally Add Attribute

是否可以使用绑定语法有条件地向元素添加属性?我知道 if.bind,但它针对的是元素。相反,我感兴趣的是针对元素的特定属性。

示例:

<a href.bind="model.link">${model.text}</a>

如果 model.link 是假的,那么我根本不需要 href——只是将 <a /> 视为容器元素。

我意识到我可以创建两个 <a /> 标签——一个有属性,一个没有——并在两者上使用 if.bind,但这看起来很笨重而且不像 aurelia。

我认为 Aurelia 目前不支持它 (issue 1, issue 2)

这个,

<a href.bind="addLink ? link : ''">Link</a>. 

将产生

<a href>Link</a>

如果 addLinkfalse

它不会完全删除 attribute。如果您使用的库将检查属性是否存在以操纵元素,那么这将不起作用。另一种选择是创建自定义属性 like this。但这似乎是一项开销。