如何计算复选框的初始状态,并在淘汰赛中订阅以后的状态变化



我想根据计算值在初始页面加载中选中/取消选中复选框。以后当用户选中/取消选中复选框时,我想捕获它。

 <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官方文档

最新更新