2013-02-20 63 views
0

我想弄清楚如何添加和从类删除类与淘汰赛。敲除绑定不更新类风格

应该发生的事情是,当我点击卡车时,按钮应该更新为类btn-red,并且汽车按钮应该已经移除了btn-red。

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

我已经把一个非常简单的JSFiddle.net/N8GBB/11/(计算器不会让我的链接后由于某种原因) 下面是我使用的jsfiddle

 
<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> 
代码
 
var vehicle={ 
    type:ko.observable("car"), 
      set_to_car : function(){ 
     this.type='car' 
     alert(this.type); 
    }, 
     set_to_truck: function(){ 
      this.type='truck' 
    alert(vehicle.type);   
    }}; 

ko.applyBindings(vehicle); 

回答

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

您可以在文档中阅读有关Reading and writing observables的更多信息。

+0

谢谢@nemesv,我实际上已经阅读过文档,但并没有真正理解所有的含义。谢谢澄清。 – pedalpete 2013-02-20 21:42:53