获得简单的viewModel:
function viewModel() {
enabled: ko.observable(false);
...
}
和一些绑定如:
<input data-bind="hasFocus: enabled" />
我希望在焦点上运行一些函数,而其他焦点丢失(或启用=真/假),但在值更改时运行。 有什么帮助吗?
答案 0 :(得分:15)
您可以订阅已启用的功能,例如:
enabled.subscribe(function(newValue) {
if(newValue) { // Has focus
} else {
// No focus
}
});
答案 1 :(得分:2)
事件:{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); <--
答案 2 :(得分:0)
通常,一个好的解决方案是订阅你的observable并在那里处理你的逻辑:
enabled.subscribe(function(newValue) {
if (newValue) {
//do something if it is true
}
else {
//do something if false
}
});