Knockout.js 您可以添加knockoutjs样式的绑定来指定属性+;共同价值观?

Knockout.js 您可以添加knockoutjs样式的绑定来指定属性+;共同价值观?,knockout.js,Knockout.js,我有一个关于样式绑定的问题。是否可以生成整个样式绑定文本?那么,属性和值是如何组合在一起的呢? 例如: function ViewModel() { this.fontSize = ko.observable(12); this.fontSizeCSS = ko.computed(function() { return "font-size: " + " " + this.fontSize() + "px"; }, this); } // A

我有一个关于样式绑定的问题。是否可以生成整个样式绑定文本?那么,属性和值是如何组合在一起的呢? 例如:

    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>

同侧眼睑

是否可以这样做(我尝试过,但没有成功):


同侧眼睑

如果是,如何进行?若否,原因为何? 可以将文本绑定到html样式的元素,但我想知道您是否可以做一些类似的事情,我的建议是什么? 谢谢

的主要参数不是
字符串,而是

您应该传递一个JavaScript对象,其中属性名对应于样式名,值对应于您希望应用的样式值

因此,您的
fontSizeCSS
computed应该返回一个对象,而不是一个字符串,它可以正常工作:

this.fontSizeCSS = ko.computed(function() {
        return {"fontSize": this.fontSize() + "px"};
}, this);

演示。

上一个示例的绑定中不应该有()。省略()并不能解决问题。这是正确的,但开始时使用错误的代码并没有帮助。谢谢!它是这样工作的,唯一的问题是我必须使用fontSize而不是fontSize。您能在回答中更正吗?@Zsombi您使用的是哪种浏览器?因为它在我的IE10和最新Chrome的演示中都运行良好…这就是原因,谢谢!顺便说一下:Firefox22.0
this.fontSizeCSS = ko.computed(function() {
        return {"fontSize": this.fontSize() + "px"};
}, this);