将相同的viewModel绑定到不同的区域,但具有不同的值Knockout Js

时间:2012-10-02 16:31:20

标签: data-binding knockout.js

我想将相同 ViewModel 的绑定应用于显示相同信息但保存不同值的不同模态框,我尝试向模态添加ID以应用此绑定。

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

它绑定好,但是当我更改任何一个模态中的值时,它会在另一个模式中更改,

我的jsFiddle http://jsfiddle.net/SgkbD/1/有一些我想要的例子。

2 个答案:

答案 0 :(得分:1)

为什么你不能这样做http://jsfiddle.net/pmarshallandrew/SgkbD/19/ 并使用相同的viemodel的不同实例?

...这非常有效,因为您将同一个viewmodel的不同实例绑定到DOM的两个不同部分。 编辑 - 更新了更好的答案。

答案 1 :(得分:0)

首先,您的示例未显示您所描述的内容。

要回答您的问题,这是预期的行为。这是因为您将同一个可观察对象绑定到两个不同的位置。但因为它是相同的observable,以任何方式更新它,所以引用它的所有绑定都将被更新。

我已更新您的示例以在http://jsfiddle.net/SgkbD/8/

显示此内容

修改 在你的答案下面,明显的答案是你不能。相同的属性,这将违背淘汰赛的设计。

但是,你可以做我在http://jsfiddle.net/photo_tom/SgkbD/9/中所做的事情。您可以在不同的部分中绑定视图模型的不同属性。

如果你想要两个不同的viewmodel副本,每个副本绑定到一个不同的部分,那也可以。