我有关于样式绑定的问题.是否可以生成整个样式绑定文本?那么财产和价值部分在一起?
例如:
例如:
function viewmodel() { this.fontSize = ko.observable(12); this.fontSizeCSS = ko.computed(function() { return "font-size: " + " " + this.fontSize() + "px"; },this); } // Activates knockout.js ko.applyBindings(new viewmodel());
简单的方法是这样做:
<div data-bind="style: { fontSize: fontSize() + 'px'}"> <p>Lorem ipsum</p> </div>
有可能这样做(我试过,它没有用):
<div data-bind="style: { fontSizeCSS() }"> <p>Lorem ipsum</p> </div>
如果有,怎么样?如果没有,为什么不呢?
可以对html样式元素进行文本绑定,但我想知道你是否可以做一些类似的,我提议的内容?
谢谢!
解决方法
style
binding的主要参数不是字符串,而是
You should pass a JavaScript object in which the property names correspond to style names,and the values correspond to the style values you wish to apply.
所以你的fontSizeCSS计算应该返回一个对象,而不是一个字符串,它将正常工作:
this.fontSizeCSS = ko.computed(function() { return {"fontSize": this.fontSize() + "px"}; },this);
演示JSFiddle.