我的每个元素都有IsAnabled和IsDeafult。如果IsDefault = true,则应禁用该复选框。
当我这样做时,它有效,除了我想要“启用”的对手效果:
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault" />
我试过了:
<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault == 'false'" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault != 'true'" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault != true" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault == '0'" />
但仍然没有运气......
答案 0 :(得分:11)
我建议您阅读以下文章:10 Things to Know About KnockoutJS 引用文章:
大多数绑定都会对传递的值调用ko.utils.unwrapObservable 对它来说,它将安全地返回两个observable和的值 非观测。但是,在绑定中如果使用了一个可观察的 表达式,然后你需要将它作为一个函数引用。同样,在 代码通常需要将您的observable引用为函数, 除非你真的想要传递observable本身(不是 值)。
因此,当您在表达式中使用它们时,应将()
添加到observable:
<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault()" />