Javascript KnockoutJS将复选框可见性绑定到正在选中或具有特定值的复选框

Javascript KnockoutJS将复选框可见性绑定到正在选中或具有特定值的复选框,javascript,checkbox,knockout.js,Javascript,Checkbox,Knockout.js,因此,我有一个复选框,并尝试实现以下逻辑来设置可见性: 如果选中复选框或复选框的值低于指定的数字,请将visible设置为true 如果该值超过测试值且复选框未选中,则将其隐藏 以下是我到目前为止的情况: <input type="checkbox" data-bind="visible: $data.Cost <= $root.itemLevel() - $root.totalEnchantLevelsUsed() || checked" /> 但这告诉我“项”是未定义的。

因此,我有一个复选框,并尝试实现以下逻辑来设置可见性:

如果选中复选框或复选框的值低于指定的数字,请将visible设置为true

如果该值超过测试值且复选框未选中,则将其隐藏

以下是我到目前为止的情况:

<input type="checkbox" data-bind="visible: $data.Cost <= $root.itemLevel() - $root.totalEnchantLevelsUsed() || checked" />
但这告诉我“项”是未定义的。当我尝试显式传递$data时,会收到一条关于ko.computed和必须设置“write”访问的错误消息


有没有一个相对简单的方法可以做到这一点,我只是忽略了?诚然,我对击倒并不十分熟悉。

这里有一些类似于您尝试做的事情:

Html:


我希望不必走这条路,因为这意味着必须重做一些我已经实现的代码,而这只是一个“很好拥有”的特性。但是,我想这就是事实。谢谢
this.isChecked = ko.computed ( function (item) { 
  console.log('item', item); // PURELY TO TEST THE VALUE
}
<div data-bind="foreach:items">
    <label data-bind="visible: isAllowedInWorkflow">
        <input data-bind="value: val" type="checkbox" />
        This checkbox has value
        <span data-bind="text:val"></span>
    </label>
</div>
ko.applyBindings({
    items: [createItem(10), createItem(20), createItem(30) ]
})

function createItem(val) {
    var  _item = {
         val: val
        ,isSelected: ko.observable(false)
    };
    _item.isAllowedInWorkflow = ko.computed(function() {
        //notice the order is importeant since you always want isSelected to be triggered for the 
        //computed to calculate its dependencies
        return !_item.isSelected() && val > 10; 
    });
    return _item;
}