我有一个计算值,其中包含其他计算值的合并,然后我将其绑定到我的元素:
HTML
<td data-bind="text: displayNamePipeJob, attr: primaryStyling()"></td>
JS
self.primaryStyling = window.ko.pureComputed(function()
{
return {
style: 'color: ' + self.primaryFontColor() + '; font-family: ' + self.fontFamily()
}
});
为避免以这种方式构建手动字符串的丑陋,有没有办法将style
作为某种具有属性的对象提供,例如:
self.primaryStyling = window.ko.pureComputed(function()
{
return {
style: {
'color': self.primaryFontColor(),
'font-family:': self.fontFamily()
}
}
});
可悲的是,这会输出到style="[object Object]"
。
答案 0 :(得分:0)
淘汰的目标之一是将您的视图与模型分开 - 因此直接从模型返回整个样式信息可能并不完全正确。
我会接近它,其中模型包含有效的配置信息,并且视图使用它。为了这个目的,淘汰赛有一个style
binding:
<td data-bind="text: displayNamePipeJob, style: {color: primaryColor, fontFamily: fontFamily }"></td>
如果以比您的示例更复杂的方式计算值,则可以为每个样式属性构建单独的computed
函数。