2013-03-02 27 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

相關問題