0

これがjsFiddleコードです。

3 + 3 として 2 つのブロックに分割された 6 つの入力テキストがあります。

最初の 3 つの入力テキストは、想定どおりに機能します。ユーザーが何かを入力しても、同じテキストが表示されます。

別の 3 つの入力テキストに対して同じ動作をさせたいので、各ブロックは独立しています。残念ながら、2 番目のブロックはまったく機能しません。私は何が欠けていますか?

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);
4

1 に答える 1

1

ビューモデルを間違った方法で構造化しています。

2つのプロパティを持つ1つのビューモデルが必要です。

var value="Type here...";
var value2="Hello John2";
var viewModel = {
        Name: ko.observable(value),
        Name2: ko.observable(value2)
    };
ko.applyBindings(viewModel);

ビューモデルとその使用方法について詳しくは、ドキュメントをご覧ください。

デモ: http: //jsfiddle.net/d9VkK/

于 2013-02-04T09:32:30.863 に答える