以下是jsFiddle代码。
我将6个输入文本分成两个块,分别为3 + 3。
前三个输入文本可以正常工作:即使用户输入内容,它们也会显示相同的文本。
我希望另外三个输入文本具有相同的行为,因此每个块都是独立的。不幸的是,第二个块根本不起作用。 我错过了什么?
HTML:
<div>
<!--the first block-->
<input type="text" data-bind="value:Name, valueUpdate:'afterkeydown'"><br>
<input type="text" data-bind="value:Name, valueUpdate:'afterkeydown'"><br>
<input type="text" data-bind="value:Name, valueUpdate:'afterkeydown'">
<br><br><br>
<!--the second block-->
<input type="text" data-bind="value:Name2, valueUpdate:'afterkeydown'"><br>
<input type="text" data-bind="value:Name2, valueUpdate:'afterkeydown'"><br>
<input type="text" data-bind="value:Name2, valueUpdate:'afterkeydown'">
</div>
JS:
var value="Type here...";
var viewModel={Name:ko.observable(value)};
ko.applyBindings(viewModel);
var value2="Hello John2";
var viewModel2={Name2:ko.observable(value2)};
ko.applyBindings(viewModel2);
答案 0 :(得分:1)
您正在以错误的方式构建视图模型。
您需要一个具有两个属性的viewmodel:
var value="Type here...";
var value2="Hello John2";
var viewModel = {
Name: ko.observable(value),
Name2: ko.observable(value2)
};
ko.applyBindings(viewModel);
您可以在documentation中了解有关viewmodel以及如何使用它们的更多信息。