0

ノックアウトでhtmlからクラスを追加および削除する方法を理解しようとしています。

トラックをクリックすると、ボタンが btn-red クラスに更新され、車のボタンは btn-red が削除されます。

アラートがトリガーされ、正しい値が返されるため、イベント バインディングが機能していることはわかりますが、ビューを更新できません。

私は非常に単純な JSFiddle.net/N8GBB/11/ をまとめました (スタックオーバーフローでは、何らかの理由でリンクを投稿できません) jsfiddle で使用しているコードは次のとおりです。

<button class="btn" data-bind="css:{'btn-red':type()=='car'}, click: set_to_car">車</button>
<button class="btn" data-bind="css:{'btn-red':type()=='truck'}, click: set_to_truck">トラック</button>
var 車両={
    type:ko.observable("車"),
           set_to_car : function(){
        this.type='車'
        アラート (this.type);
    }、
        set_to_truck: 関数(){
            this.type='トラック'
     アラート (車。タイプ);        
    }};

ko.applyBindings(乗り物);
4

1 に答える 1

1

typeオブザーバブルを正しく設定していません。

このko.observableメソッドは関数を返すため、その値を変更する場合は、新しい値を引数として関数として呼び出す必要があります。

var vehicle={ 
    type:ko.observable("car"),
           set_to_car : function(){
        this.type('car');
    },
        set_to_truck: function(){
            this.type('truck');  
    }};

JSFiddleのデモ。

オブザーバブルの読み取りと書き込みの詳細については、ドキュメントを参照してください。

于 2013-02-20T05:52:59.847 に答える