Knockout js:当布尔值为false时绑定复选框启用

时间:2012-10-31 13:54:38

标签: checkbox knockout.js

我的每个元素都有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'" />

但仍然没有运气......

1 个答案:

答案 0 :(得分:11)

我建议您阅读以下文章:10 Things to Know About KnockoutJS 引用文章:

  

大多数绑定都会对传递的值调用ko.utils.unwrapObservable   对它来说,它将安全地返回两个observable和的值   非观测。但是,在绑定中如果使用了一个可观察的   表达式,然后你需要将它作为一个函数引用。同样,在   代码通常需要将您的observable引用为函数,   除非你真的想要传递observable本身(不是   值)。

因此,当您在表达式中使用它们时,应将()添加到observable:

<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault()" />