実際には、これらのオプションのどれよりもかなり単純です。バインディングを条件付きにすることはできませんが、起動される関数を条件付きにすることはできます。バインディングで条件を使用するだけです。
<div data-bind="click: myName() === 'John' ? toggleDialog : function(){ /* Nothing Happens */}">Click Me</div>
それは起動するか、何もしないtoggleDialog()
匿名のいずれかになります。function(){}
バインドされたプロパティをスタックして、ボタン自体を無効にすることもできます。
<div data-bind="
disabled: myName() !== 'John',
click: myName() === 'John' ? toggleDialog : function(){ /* Nothing Happens */}
">Click Me</div>
または、満たされていない条件に応答して実行される別の関数を用意します。
<div data-bind="
disabled: myName() !== 'John',
click: myName() === 'John' ? toggleDialog : tellUserTheyAreWrong
">Click Me</div>
お役に立てれば