【发布时间】:2013-07-28 21:42:18
【问题描述】:
我知道在淘汰赛中可以从可观察的属性中指定类,如下所示:
<div data-bind="css: Color " >
Knockout 还提供了指定条件类渲染的能力,如下所示:
<div data-bind="css: { 'my-class' : SomeBooleanProperty }" >
但是,如果我需要将淘汰赛 css 的这些功能绑定在一起,应该指定哪个标记?
我试过了,但没有运气:
<div data-bind="css: { Color, 'my-class' : SomeBooleanProperty }" >
我得到了错误:
错误:无法解析绑定。 SyntaxError: Unexpected token ,;
我在谷歌或官方文档中没有找到任何示例。
更新
我找到了一种解决方法:在代码中构建样式字符串并将其放入属性中,如下所示:
item.AdditionalCss(Color() + " " + (result.IsSortable() ? 'my-class' : null));
并在html中指定这个类:
data-bind="css: AdditionalCss "
但我有点困惑,我认为这是肮脏的做法。我认为在标记中实现相同的结果会更好。如何通过标记实现这一点?
【问题讨论】:
-
我不确定这是否有效,但请尝试
css: { Color : true, 'my-class': SomeBooleanProperty }。 -
感谢@Alxandr,但它不起作用,我得到了标记:
class="Color my-class",但我需要属性值 Color 而不是属性名称。 -
很遗憾的是,knout 没有提供与 'data-bind' 属性相同的绑定。
标签: css knockout.js model-binding