Class 淘汰绑定不更新类样式

Class 淘汰绑定不更新类样式,class,binding,knockout.js,Class,Binding,Knockout.js,我试图弄清楚如何使用knockout从html中添加和删除类 应该发生的是,当我点击卡车时,按钮应该更新为btn红色,而car按钮应该删除btn红色 我可以看到事件绑定正在工作,因为触发了警报并返回了正确的值,但我无法更新视图 我已经编写了一个非常简单的JSFiddle.net/N8GBB/11/(出于某种原因,stackoverflow不允许我发布链接) 下面是我在JSFIDLE中使用的代码 <button class="btn" data-bind="css:{'btn-red':ty

我试图弄清楚如何使用knockout从html中添加和删除类

应该发生的是,当我点击卡车时,按钮应该更新为btn红色,而car按钮应该删除btn红色

我可以看到事件绑定正在工作,因为触发了警报并返回了正确的值,但我无法更新视图

我已经编写了一个非常简单的JSFiddle.net/N8GBB/11/(出于某种原因,stackoverflow不允许我发布链接) 下面是我在JSFIDLE中使用的代码

<button class="btn" data-bind="css:{'btn-red':type()=='car'}, click: set_to_car">Car</button> <button class="btn" data-bind="css:{'btn-red':type()=='truck'}, click: set_to_truck">Truck</button> 汽车 卡车 车辆变量={ 类型:ko.可观察(“汽车”), 将_设置为_车:函数(){ 这个。type='car' 警报(此.type); }, 将_设置为_卡车:函数(){ 这个。type='truck' 警报(车辆类型); }}; ko.应用绑定(车辆);
您没有正确设置可观察的
类型

ko.observable
方法返回一个函数,因此如果要更改其值,需要将其作为一个函数调用,并将新值作为参数

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


您可以在文档中阅读更多信息。

谢谢@nemesv,我实际上已经阅读了文档,但没有真正理解其中的含义。谢谢你澄清这一点。
var vehicle={ 
    type:ko.observable("car"),
           set_to_car : function(){
        this.type('car');
    },
        set_to_truck: function(){
            this.type('truck');  
    }};