我有一个带有data-status属性的按钮,该属性绑定到viewmodel中的observable属性。当我单击按钮时,数据状态属性会更改。但它不会影响viewmodel。如果我想用新值更新viewmodel怎么办?
<button id="changeStatus" data-status="0" data-bind="attr: {'data-status', Status}" />
$("#changeStatus").attr("data-status",1);
答案 0 :(得分:1)
使用KO时,想法是更改viewModel,然后更改演示文稿。 因此,当用户点击按钮时,您应该更改VM:
如果您的VM看起来像这样:
var vm = function () {
var self = this;
self.status=ko.observable(false);
self.toggleStatus=function(){ self.status(!self.status()); }
}
你的HTML应该是这样的:
<button id="changeStatus" data-bind="click: toggleStatus" />
如果你有几个按钮,你可以改变功能以获得obj:
var vm = function () {
var self = this;
self.status=ko.observable(false);
self.flag=ko.observable(false);
self.toggleStatus=function(data,event,obj){ self[obj](!self[obj]()); }
}
<button data-bind="click: function(d,e){ togglebutton(d,e,'status');}" />
<button data-bind="click: function(d,e){ togglebutton(d,e,'flag');}" />
如果您需要更多信息,请告诉我