2013-08-15 1 views
9

は、単純なViewModelにガット変更:ノックアウトrun関数は

function viewModel() { 
    enabled: ko.observable(false); 
    ... 
} 

をし、いくつかのような結合:

<input data-bind="hasFocus: enabled" /> 

と私は焦点にいくつかの機能を実行したい、とフォーカスの他には、失われた(または有効= true/false)が、値が変更されたときに実行されます。 ヘルプがありますか?

答えて

14

あなたのような、あなたの対応機能を購読することができます:

enabled.subscribe(function(newValue) { 
    if (newValue) { 
     //do something if it is true 
    } 
    else { 
     //do something if false 
    } 
}); 
0

一般的に、良い解決策は、あなたの観測可能に加入し、同様にそこにあなたのロジックを処理することです{ mouseover:enableDetails、mouseout:disableDetails}

これを試す:

<input data-bind="hasFocus: enabled, event: { focus: onFocus, blur: onBlur}" /> 

あなたは値の変更を監視したい場合は、のviewmodelでそれを行う必要があります。

this.enabled.subscribe(function(newValue){ 
    //use newValue 
}); 

注:のviewmodelに構文エラーがあります。

enabled: ko.observable(false); <-- 
+3

文字通りまったく同じ応答が、異なる意見を持ちます! :) –

2

イベント:

enabled.subscribe(function(newValue) { 
    if(newValue) { // Has focus 

    } else { 
     // No focus 
    } 
}); 
関連する問題