Knockout.js 向淘汰样式绑定添加默认值

Knockout.js 向淘汰样式绑定添加默认值,knockout.js,Knockout.js,我有一个data bind=“style:{'background color':storedColor}” 但是存储的颜色在数据库中可以为空,因此我想添加一个默认颜色蓝色,以防它为空,这样它看起来就不会损坏或出现问题您可以使用|操作符: 如果storedColor()为空,则|操作符将返回'blue'。我建议,最好使用视图模型更紧密地模拟视图中所需的内容。不要将默认逻辑放在HTML中,而是将其放在viewmodel中,方法是更改storedColor的值,或者使用单独的计算机处理默认逻辑 更进

我有一个
data bind=“style:{'background color':storedColor}”


但是存储的颜色在数据库中可以为空,因此我想添加一个默认颜色
蓝色
,以防它为空,这样它看起来就不会损坏或出现问题

您可以使用
|
操作符:


如果
storedColor()
为空,则
|
操作符将返回
'blue'

我建议,最好使用视图模型更紧密地模拟视图中所需的内容。不要将默认逻辑放在HTML中,而是将其放在viewmodel中,方法是更改
storedColor
的值,或者使用单独的计算机处理默认逻辑

更进一步,不必为样式绑定参数指定对象文字,您可以在那里使用一个简单的函数(或者,等价地,一个计算的可观察函数),并且在代码中处理如何应用该样式的所有逻辑。不管需要做多少样式设置,HTML标记都保持简单

vm={
颜色:[“红”、“绿”、“黄”、“蓝”],
尺寸:['25','35','45','50'],
selectedColor:ko.observable(),
所选尺寸:可观察到的高度('25'),
myStyle:function(){
var mySize=vm.selectedSize()+'pt',
myColor=vm.selectedColor()| |“蓝色”;
返回{
高度:mySize,
宽度:mySize,
“背景色”:myColor
};
}
};
ko.应用绑定(vm)

data-bind="style: { 'background-color': storedColor() || 'blue' }"