当中有一些数据时,我需要在表的td元素中应用背景色。如果没有数据,我不要任何颜色。我的代码如下:
<td data-bind="text:EarlyOut,style:{background-color:EarlyOut!="" ? '#D2D6DE' : null}" ></td>
我应该写些什么而不是null?
答案 0 :(得分:3)
淘汰赛非常聪明,不会将null
写入背景颜色。 您的代码存在问题,是样式属性名称中的-
字符。
您写{ "background-color": ... }
或{ backgroundColor: ... }
这是一个具有此修复程序的可运行示例。请注意,如果EarlyOut
是可观察的属性,则需要()
提取其值。
ko.applyBindings({
setColor: ko.observable(false)
});
div {
background-color: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="style: { backgroundColor: setColor() ? 'green' : null }">
Hello world
</div>
<label>
<input type="checkbox" data-bind="checked: setColor">
Overwrite color
</label>
答案 1 :(得分:1)
这与CSS的关系要比敲除js多,您应该写'none'
(字符串!)而不是null
,至少如果您希望在没有条件的情况下不使用背景色是false
。