根據您的例子https://jsfiddle.net/3rnt2zsc/:
A)它不是使用inline
onClick
一個很好的做法。 由於您使用的是淘汰賽,因此只需使用click
事件綁定即可。 B)儘量少放javascript logic
在你看來。
C)使用模型的new
實例進行綁定。
例子:https://jsfiddle.net/of8qfdvL/1/
查看:
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="col-lg-offset-6 col-md-offset-6 col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<button class="btn btn-default btn-gb-default btn-block pull-right" data-bind="enable: ContinuedEnabled, click:OnContinue">Continue</button>
</div>
<button class="btn btn-danger pull-right btn-block" data-bind="enable: DeletedEnabled(), click:OnDelete">Delete</button>
<pre data-bind="text: ko.toJSON(DeletedEnabled, null, 2)"></pre>
</div>
</div>
型號:
var viewModel = function() {
var self = this;
self.SubmissionId = ko.observable(1234);
self.LastPageId = ko.observable(2);
self.ContinuedEnabled = ko.observable(true); // you can set the value based on your logic
self.OnContinue = function(){
console.log("SubmissionId:",self.SubmissionId());
console.log("LastPageId:",self.LastPageId());
}
self.OnDelete = function(){
console.log("SubmissionId:",self.SubmissionId());
}
self.CurrentStatusIsDraft= ko.pureComputed(function() {
return false;
});
self.DeletedEnabled = ko.pureComputed(function() {
return self.CurrentStatusIsDraft() ;
});
}
ko.applyBindings(new viewModel()); // apply a new instance of your model
正如你可以看到在這的jsfiddle https://jsfiddle.net/8cmLnyL5/的您所展示的代碼正在按照您的期望工作。如果您的瀏覽器控制檯中沒有可能導致此問題的錯誤,請顯示您的模型的更多詳細信息。 –
@ Matt.kaaj老實說,我沒有任何控制檯錯誤。 –
Parisa,你可以再顯示更多細節嗎?沒有更多的細節,真的很難提供幫助。 –