代码波纹管是应该做到以下几点:如何使knockoutJS实时响应属性更改?
- 当我输入一个新的名字,它会告诉我“欢迎:XXX”的跨度。
- 当我删除文本框中的所有字符时,跨度中将不显示任何内容。
问题是,当我删除一个单词(假设文本框的值是“Bill Gates”,默认情况下),我删除了“Gates”,我希望span实时显示“Bill”我离开了这个领域。
那么如何让KnockoutJS支持“Real Time”属性更改?我希望看到跨度在我输入时发生变化,而不是在离开文本框或按下“Enter”键时。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Knock Out Sample</title>
</head>
<body>
Your Name, please: <input type="text" data-bind="value: myName" />
<br />
<span data-bind="text: myNameShown, visible: showWelcome" id="spName"></span>
</body>
<script src="KnockOutJS.js" type="text/javascript"></script>
<script type="text/javascript">
var model = {
myName: ko.observable("Bill Gates")
};
model.myNameShown = ko.dependentObservable(function() {
return "Welcome: " + model.myName();
}, model);
model.showWelcome = ko.dependentObservable(function() {
return model.myName() && model.myName().trim() != "";
}, model);
ko.applyBindings(model);
</script>
</html>
参阅本http://knockoutjs.com/documentation/ value-binding.html。欢呼 –