2013-03-02 10 views
7

jestem coraz styl tekstu dziwny z tym kodem:Knockout wiążące css renderuje => class =”0 1 2 3 4 5 6 z KO 2,0

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

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

renderuje:

<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() renderuje grzywny w konsoli

+0

nie jestem w stanie do powtórzenia błędu problemu: http://jsfiddle.net/s86Nb/1/Twój kod powinien działać poprawnie. Z której przeglądarki i której wersji KO używasz? – nemesv

+0

@nemesv knockout-2.0.0.debug.js chrome i FF – FutuToad

Odpowiedz

11

semantyczna z css wiązaniami został zmieniony z KO KO 2.1.0 do 2.2.0

Od Knockout 2.2.0 released:

Zrobiliśmy też niektóre funkcje działają bardziej jak można zawsze mieć myśli powinny działać. Na przykład powiązanie css może teraz dołączać generowane programowo nazwy klas CSS do elementów (wcześniej, to było ograniczone do przełączania wstępnie zdefiniowanych nazw klas CSS).

więc upgrade do KO 2.2.1 i będzie działać dobrze.

Jeśli nie można uaktualnić można użyć attr wiążący jako obejście:

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

Demo JSFiddle using KO 2.0.0 and attr binding

+0

Pierwsza klasa kolega !! – FutuToad

+3

Po prostu heads up - niektóre wersje IE nie lubią "class" jako nazwy właściwości. Polecam zawijanie go w cudzysłów (''class': styleClass''), aby IE się nie dusił. –

Powiązane problemy