启用绑定不起作用


<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<button class="btn btn-danger pull-right btn-block" data-bind="enable: DeletedEnable">Delete</button>                            
</div>

即使falseDeletedEnable,enable 属性也不起作用,并且button仍处于启用状态。

self.CurrentStatusIsDraft= ko.pureComputed(function () {
return false;
});
self.DeletedEnable = ko.pureComputed(function () {
return self.CurrentStatusIsDraft() ;
});

根据您的示例 https://jsfiddle.net/3rnt2zsc/:

A( 使用inlineonClick不是一个好习惯。 由于您使用的是挖空,因此只需使用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

最新更新