0

同じViewModelのバインドを、同じ情報を表示するが異なる値を保持する異なるモーダルボックスに適用したいので、モーダルにIDを追加して、このようなバインディングを適用しようとします。

ko.applyBindings(viewModel, document.getElementById("firstModal")); ko.applyBindings(viewModel, document.getElementById("secondModal"));

バインドは問題ありませんが、いずれかのモーダルで値を変更すると、他のモーダルでも変更されます。

私の jsFiddle http://jsfiddle.net/SgkbD/1/には、私が望むもののいくつかの例があります。

4

2 に答える 2

1

http://jsfiddle.net/pmarshallandrew/SgkbD/19/のようにそれを実行して 、同じviemodelの別のインスタンスを使用できないのはなぜですか?

...これは、DOMの2つの異なる部分にバインドされた同じビューモデルの異なるインスタンスがあるため、完全に機能します。編集-より良い答えで更新しました。

于 2012-10-03T13:04:56.927 に答える
0

まず、あなたの例はあなたが説明していることを示していません。

あなたの質問に答えるために、これは予想される動作です。これは、同じ監視可能なオブジェクトを2つの異なる場所にバインドしているためです。ただし、これは同じ監視対象であるため、何らかの方法で更新すると、それを参照するすべてのバインディングが更新されます。

http://jsfiddle.net/SgkbD/8/でこれを示すためにあなたの例を更新しました


編集 以下のあなたの答えの後、明白な答えはあなたができないということです。ノックアウトの設計に反する同じプロパティ。

ただし、このhttp://jsfiddle.net/photo_tom/SgkbD/9/で行ったことは実行できます。ビューモデルのさまざまなプロパティをさまざまなセクションにバインドできます。

ビューモデルの2つの異なるコピーが必要な場合は、それぞれが異なるセクションにバインドされ、それも機能します。

于 2012-10-02T17:25:40.837 に答える