有条件地添加属性

有条件地添加属性

问题描述:

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

例子:

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

如果model.link是falsy,那么我不希望href在所有 - 只是对待<a />作为容器元素。

我意识到我可以创建两个<a />标签 - 一个带有属性,另一个没有 - 并且两个都使用if.bind,但看起来很笨重和非aurelia喜欢。

+0

虽然仍然输出'href'本身。相应的URL是空的,但它仍然像超链接一样处理。如果没有URL,我不想将“”设置为超链接。 –

我不认为这是奥里利亚支持目前(issue 1issue 2

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

会产生

<a href>Link</a> 

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