2013-08-15 31 views
9

basit ViewModel var değiştirdi:nakavt çalışma fonksiyonu

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

ve bazıları gibi bağlayıcı:

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

ve ben odak bazı işlevini çalıştırmak istiyor ve odak diğer kaybetti (veya etkin = true/false) ancak değer değiştiğinde çalıştır. Herhangi bir yardım?

cevap

14

gibi da bulunan etkin işleve abone olabilir:

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

Tipik olarak, iyi bir çözüm gözlemlenebilir abone ve benzeri orada mantığı işlemek için { mouseover: enableDetails, mouseout: disableDetails}

bu deneyin:

Eğer değer değişimini izlemek istiyorsanız

sen ViewModel bunu yapmalıdır:

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

Not: Eğer ViewModel sözdizimi hatası var:

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

anlamıyla tam aynı yanıtı, ancak farklı yorumlarla ! :) –

2

olay:

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

    } else { 
     // No focus 
    } 
});