考虑以下简单的示例:
<input data-bind="value: query, valueUpdate: 'afterkeydown'"/>
在 knockoutjs 2.1.0 中,当我按下 , , 中的任何一个时,绑定ctrl不会被触发并且不会更新。Up arrowDown arrowShiftquery
在 knockoutjs 2.2.0 中,绑定会针对上述所有按键触发。
这对一些现有代码造成了严重破坏(它是一个自动完成功能,并且经常使用向上和向下箭头从下拉列表中进行选择)。
哪种行为是正确的?我假设从技术上讲,后者是正确的,因为这些按下这些键是一个 keydown 事件,但是如果值发生变化,绑定不应该只触发吗?
我想保持一切实时,文档状态:
如果您想实时更新视图模型,“afterkeydown”是最佳选择
建议?
- ko 2.1.0 演示:http: //jsfiddle.net/Rmcza/7/
- ko 2.2.0 演示:http: //jsfiddle.net/Rmcza/8/