我正在试图弄清楚如何使用knockout从html添加和删除类。
当我点击卡车时,按钮应该更新为btn-red类,并且车载按钮应该删除btn-red。
我可以看到事件绑定正在运行,因为触发了警报并返回了正确的值,但我无法让视图更新。
我已经整理了一个非常简单的JSFiddle.net/N8GBB/11/(stackoverflow不会因为某些原因让我发布链接) 这是我在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);
答案 0 :(得分: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的更多信息。