我注意到,我无法获得某些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标签的值会随着我更改输入中的文本而改变,但是事实并非如此。有人可以解释为什么上述方法不起作用吗?(此代码几乎是从网站上的文档中复制的)
谢谢,亚历克斯。
从KO 3.2版开始(如Salvador Dali的回答所指出的那样),您应该使用textinput
绑定进行即时更新:
<input data-bind="textInput: userName" />
在使用早期版本的Knockout和value
绑定时,应进行以下更改:
默认情况下,剔除会在change事件上更新可观察值的值(例如,当文本框的焦点丢失时)。
如果你想即时更新你需要指定valueUpdate
其中的可能事件选项:keyup
,keypress
,afterkeydown
看到的更多信息的文档。
因此,更改value
绑定:
<input type="text" data-bind="value: Name, valueUpdate: 'afterkeydown'"></input>
演示JSFiddle。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句