2

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

但仍然没有运气...

4

1 回答 1

11

我建议您阅读以下文章:关于 KnockoutJS 的10 件事

大多数绑定将在传递给它的值上调用 ko.utils.unwrapObservable,这将安全地返回可观察对象和不可观察对象的值。但是,在绑定中,如果您在表达式中使用可观察对象,则需要将其作为函数引用。同样,在代码中,您通常需要将 observables 引用为函数,除非您实际上想要传递 observable 本身(而不是值)。

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

<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault()" />
于 2012-10-31T14:03:39.280 回答