我有一个带有敲除值的基本输入字段:
<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}" />