我有以下淘汰代码:
<!-- ko if: isActive -->
<a data-bind="attr: { href: hash }, html: name" class="bg-color-blue fg-color-white"></a>
<!-- /ko -->
<!-- ko ifnot: isActive -->
<a data-bind="attr: { href: hash }, html: name" class="bg-color-grayLight"></a>
<!-- /ko -->
正如你所看到的,除了'class'不同之外,这是完全相同的锚。
我想知道是否可以简化我的代码以避免重复此锚点?是否可以使用一个锚点并在其中设置条件?
感谢您的帮助。
答案 0 :(得分:3)
使用css
binding:
<a data-bind="attr: { href: hash },
html: name,
css: { 'bg-color-grayLight': !isActive(),
'bg-color-blue fg-color-white': isActive() }">
</a>
示例: http://jsfiddle.net/CCNtR/16/
或者,您可以使用带有attr
绑定的条件语句并设置整个类属性:
<a data-bind="attr: { href: hash, 'class': isActive() ?
'bg-color-blue fg-color-white' : 'bg-color-grayLight' },
html: name">
</a>
示例: http://jsfiddle.net/CCNtR/17/
第二条路线的缺点当然是在解析绑定时会删除任何其他类。我坚持使用第一种方法。