Knockout事件绑定

时间:2016-03-10 22:32:17

标签: javascript knockout.js data-binding event-binding

我想将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;

我搜索过很多事件绑定示例,但无法解决我的问题。谢谢你的帮助。

1 个答案:

答案 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中是一个重要的代码味道。