7

このコードで奇妙なスタイルのテキストを取得しています:

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() はコンソールで正常にレンダリングされます

4

1 に答える 1

11

バインディングのセマンティクスがcssKO 2.1.0 から KO 2.2.0 に変更されました

Knockout 2.2.0からリリース:

また、機能するはずだと思っていたように、いくつかの機能がより機能するようにしました。たとえば、css バインディングは、プログラムによって生成された CSS クラス名を要素に添付できるようになりました (以前は、事前定義された CSS クラス名の切り替えに限定されていました)。

したがって、KO 2.2.1にアップグレードすると、問題なく動作します。

アップグレードできない場合は、attrバインディングを回避策として使用できます。

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

KO 2.0.0 と attr バインディングを使用した JSFiddle のデモ

于 2013-03-02T18:04:16.603 に答える