我想将myFunction与change或onchange事件绑定。
这是我要在我的ViewModel中绑定的函数:
function openModal() {
//
//some code here
//
$('#seconds').spinner({
spin: spinSeconds
});
}
我在openModal()函数中调用此函数:
<div class="col-sm-9">
<input id="seconds" value=10 size=2 data-bind="value: PreExecWaitMin, event: {change: myFunction}" /> minutes
</div>
我使用它如下:
{{1}}
我正面临着这个错误:
&#39;未捕获的ReferenceError:无法处理绑定&#34; event:function(){return {change:myFunction}}&#34; 消息:未定义spinSeconds&#39;
我搜索过很多事件绑定示例,但无法解决我的问题。谢谢你的帮助。
答案 0 :(得分:1)
The first argument to an event-bound function是$data
。第二个是事件。但是观察输入上的更改事件的方法是subscribe到绑定的value
:
对于高级用户,如果您想注册自己的订阅 如果被告知可观察的变化,您可以致电他们的订阅 功能。例如:
myViewModel.personName.subscribe(function(newValue) { alert("The person's new name is " + newValue); });
订阅功能是KO在内部工作的部分。最 当你不需要使用它时,因为内置绑定 和模板系统负责管理订阅。
更有可能的解决方案是根据值绑定变量设置computed。订阅是隐含的。
如果spinner
有自己的自定义绑定处理程序会更好,尽管你可能可以侥幸逃脱,因为它似乎只是一种视觉效果。 jQuery选择器在Knockout中是一个重要的代码味道。