输入值更改时,淘汰赛可观察字段未更新

亚历克斯·霍普·奥康纳(Alex Hope O'Connor):

我注意到,我无法获得某些Knockout实时教程的工作或基本示例,这些示例应演示可观察的数据绑定。

这是我的代码:

<!DOCTYPE html> 
<html lang="en">

<html>
    <head>
        <meta charset="utf-8" />
        <title>Testing</title>
        <script type="text/javascript" src="knockout.js"></script>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            function TestViewModel() {
                this.Name = ko.observable("Testing");
            }

            $(function() {
                ko.applyBindings(new TestViewModel());
            });
        </script>
    </head>

    <body>
        <h1>Testing Knockout.js</h1>
        <div>
            <div>
                <span data-bind="text: Name"></span>
            </div>
            <div>
                <input type="text" data-bind="value: Name"></input>
            </div>
        </div>
    </body>
</html>

因此,当我在Google Chrome或Firefox中打开它时,我希望span标签的值会随着我更改输入中的文本而改变,但是事实并非如此。有人可以解释为什么上述方法不起作用吗?(此代码几乎是从网站上的文档中复制的)

谢谢,亚历克斯。

nemesv:

从KO 3.2版开始(如Salvador Dali的回答所指出的那样),您应该使用textinput绑定进行即时更新:

<input data-bind="textInput: userName" />

在使用早期版本的Knockout和value绑定时,应进行以下更改:

默认情况下,剔除会在change事件上更新可观察值的值(例如,当文本框的焦点丢失时)。

如果你想即时更新你需要指定valueUpdate其中的可能事件选项:keyupkeypressafterkeydown看到的更多信息的文档

因此,更改value绑定:

<input type="text" data-bind="value: Name, valueUpdate: 'afterkeydown'"></input>

演示JSFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章