如何在淘汰表中为背景颜色样式属性应用三元运算符?

时间:2019-07-18 11:52:53

标签: html knockout.js

当中有一些数据时,我需要在表的td元素中应用背景色。如果没有数据,我不要任何颜色。我的代码如下:

<td data-bind="text:EarlyOut,style:{background-color:EarlyOut!="" ? '#D2D6DE' : null}" ></td>

我应该写些什么而不是null?

2 个答案:

答案 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