Knockout.js 关于敲除js和值更改的数据绑定
在这里,两个文本框和一个跨度通过敲除绑定。我得到的例子很容易理解。这是代码Knockout.js 关于敲除js和值更改的数据绑定,knockout.js,Knockout.js,在这里,两个文本框和一个跨度通过敲除绑定。我得到的例子很容易理解。这是代码 <p>First name: <input data-bind="value: firstName" /></p> <p>Last name: <input data-bind="value: lastName" /></p> <h2>Hello, <span data-bind="text: fullName"> </
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>
<h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
var ViewModel = function(first, last) {
this.firstName = ko.observable(first);
this.lastName = ko.observable(last);
this.fullName = ko.computed(function() {
// Knockout tracks dependencies automatically. It knows that fullName depends on firstName and lastName, because these get called when evaluating fullName.
return this.firstName() + " " + this.lastName();
}, this);
};
ko.applyBindings(new ViewModel("Planet", "Earth"));
名字:
姓氏:
你好
var ViewModel=函数(第一个,最后一个){
this.firstName=ko.observable(first);
this.lastName=ko.observable(last);
this.fullName=ko.computed(函数(){
//Knockout自动跟踪依赖项。它知道fullName依赖于firstName和lastName,因为在计算fullName时会调用它们。
返回此.firstName()+“”+此.lastName();
},这个);
};
ko.应用绑定(新视图模型(“行星”、“地球”);
当代码运行时,无论传递什么值,都会反映出来,但当我更改一个文本框值时,更改的数据不会在
keyup
发生时立即反映出来,但当焦点更改时,更改的数据会反映在span中。所以,如果我想更改keyup上的数据,那么请指导我需要在代码中更改什么。谢谢您应该使用valueUpdate
绑定:
<p>First name: <input data-bind="value: firstName, valueUpdate: 'keyup'" /></p>
<p>Last name: <input data-bind="value: lastName, valueUpdate: 'keyup'" /></p>
<h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
名字:
姓氏:
你好
这里有一个文档链接:您可以在数据绑定中传递附加值
valueUpdate
- 价值更新
- “keyup”-在用户释放密钥时更新视图模型
- “按键”-当用户键入键时更新视图模型。 与keyup不同的是,它会在用户按住键时重复更新
- “afterkeydown”-用户一开始就更新视图模型 键入字符。这是通过捕捉浏览器的keydown事件来实现的 以及异步处理事件李>
<p>First name: <input data-bind="value: firstName, valueUpdate: 'keyup'" /></p>
<p>Last name: <input data-bind="value: lastName, valueUpdate: 'keyup'" /></p>
名字:
姓氏: