我想根据计算值在初始页面加载中选中/取消选中复选框。以后当用户选中/取消选中复选框时,我想捕获它。
<div class="col-sm-9 col-md-9 pull-right">
<input type="checkbox" class="control-label" data-bind="checked:IsGroup" />
<label class="control-label form-label" style="text-align:center;vertical-align:middle">Medical Group</label>
</div>
self.IsGroup = ko.computed(function () {
return someValue == null ? false : true;
});
self.IsGroup .subscribe(function (newValue) {
if (newValue) {
alert(newValue);
}
else {
alert(newValue);
}
});
订阅事件未触发。如何处理这种情况?
您已经计算了一个只读。让它像这样可写:
self.IsGroup = ko.computed({
read: function () {
return someValue == null ? false : true;
},
write: function(newValue) {
someValue = newValue;
alert(newValue);
}
});
请注意,这实际上意味着您不需要订阅:您可以在write
函数中触发您的自定义逻辑(例如alert
)。这正是可写计算机所擅长的。
详细信息请参考computed
官方文档