2014-03-13 71 views
0

我有一個按鈕,它具有綁定到viewmodel中的observable屬性的data-status屬性。當我點擊按鈕時,數據狀態屬性被改變。但它不影響視圖模型。如果我希望viewmodel更新爲新值,該怎麼辦?在屬性上的雙向綁定,knockout.js

<button id="changeStatus" data-status="0" data-bind="attr: {'data-status', Status}" /> 

$("#changeStatus").attr("data-status",1); 
+0

請張貼一些代碼!點擊按鈕如何改變數據狀態?你的數據狀態是否受限於可觀測的? – nemesv

+0

在我的第一篇文章中添加了一些代碼。 – Daniel

回答

1

與KO一起工作時,想法是更改viewModel,然後演示文稿將被更改。 因此,當用戶點擊該按鈕,你應該改變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" /> 

,如果您有幾個按鈕,您可以更改功能以獲得目標:

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');}" /> 

讓我知道如果你需要更多的信息