我有一个带有敲除值的基本输入字段:

<input type="text" data-bind="value: mytext"/>


但是,我想在收到“ mytext”的值后对我的视图模型执行som逻辑。
最初,我想到了某种后处理事件,例如“ valueUpdate”,但是基本上我只想在点击“ enter”和“ space”之后运行一个函数。我需要编写一个新的bindingHandler还是做一个更直接的剔除方法?

基本上,我想做的就是结合jquery / autocomplete / multible和Ryan Niemeyers敲除可排序示例http://jsfiddle.net/rniemeyer/vgXNX

我位于div.item之后的div.container中,替换了“添加任务”,例如:

<div class="container">
     <div class="item" data-bind="sortable:{template:'tagsTmpl',data:myTags, allowDrop:true"></div>
     <input data-bind="value: mytext, event: {keypress: handleKey}"/>
     <!-- Line above replacing this: <a href="#" data-bind="click: $root.addTag">Add Tag</a> -->
 </div>

最佳答案

基本上我只是想在点击“输入”和“空格”后运行一个函数。


您可以使用event绑定。



ko.applyBindings({
    mytext: ko.observable("initial value"),
    handleKey: function(data, event) {
        if (event.keyCode == 0x20) {
            console.log("Space has been pressed!");
        }
        return true;
    }
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<input type="text" data-bind="value: mytext, event: {keypress: handleKey}" />

09-11 19:07
查看更多