2013-03-02 35 views
7

我得到一个奇怪样式的文本,此代码:敲除CSS结合的渲染数=>类=” 0 1 2 3 4 5 6与KO 2.0

self.styleClass = ko.computed(function() { 
      return self.isFollowing() ? "button" : "secondary button"; 
     }); 

     <button data-bind="text: followButtonText,click: toggleIsFollowing, css: styleClass"></button> 

它呈现:

<button data-bind="text: followButtonText,click: toggleIsFollowing, css: styleClass" class=" 0 1 2 3 4 5 6 7 8 9 10 11 12">Unfollow</button> 

model.styleClass()呈现优良的控制台

+0

我不能瑞普您的问题:http://jsfiddle.net/s86Nb/1 /你的代码应该可以正常工作。您使用哪个浏览器和哪个KO版本? – nemesv 2013-03-02 17:28:06

+0

@nemesv knockout-2.0.0.debug.js chrome and FF – FutuToad 2013-03-02 18:39:35

回答

11

语义的css的结合已经从KO 2.1.0改变为KO 2.2.0

Knockout 2.2.0 released

我们也做了一些功能的工作更喜欢你可能总是有 认为他们应该工作。例如,css绑定现在可以将以编程方式生成的CSS类名称附加到元素(之前,它仅限于切换预定义的CSS类名称)。

因此升级到KO 2.2.1它会正常工作。

如果您不能升级您可以使用attr作为一种解决方法结合:

<button data-bind="text: followButtonText, 
        click: toggleIsFollowing, 
        attr:{ class: styleClass}" /> 

演示JSFiddle using KO 2.0.0 and attr binding

+0

一等队友!! – FutuToad 2013-03-02 18:56:04

+3

只是一个头 - IE的某些版本不喜欢'class'作为属性名称。我建议用引号(''class':styleClass'')包装它,这样IE就不会窒息。 – 2013-03-02 23:03:26

相关问题