2012-10-31 44 views
2

我的每個元素都有IsAnabled和IsDeafult。如果IsDefault = true,那麼該複選框應該被禁用。Knockout js:當布爾值爲假時啓用綁定複選框

當我做這樣的工作原理,但我要爲 「啓用」 的oppsite效果:

<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'" /> 

但仍沒有運氣...

回答

11

我建議你閱讀下面的文章:10 Things to Know About KnockoutJS 來自文章引用:

大多數綁定將調用ko.utils.unwrapObservable上的值 給它,它將安全地返回兩個觀測值和不可觀測值的值。但是,如果在一個綁定中使用 表達式中的可觀察值,則需要將其作爲函數進行引用。同樣,在 代碼中,除非實際想要傳遞observable本身(而不是 值),否則通常需要引用您的observable作爲函數 。

所以,你應該添加()可觀察到的,當你在表達式中使用它們:

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