如何拥有一个可以从两个源更新的可观察集合,而不会在knockout.js中引起循环

时间:2013-07-19 08:11:51

标签: javascript knockout.js

我正在使用knockout.js。我有一种情况,我有一个项目集合,每个项目都有一个可观察的布尔isleader。其中一个人可以一次活动。如果人们将集合中的项目与另一个集合中的项目进行交换,那么我会检查旧项目是否为真,如果是,我将其设置为新项目。这很好用。现在我需要添加第二个输入机制,它是一个下拉列表,绑定到集合以显示集合中的所有项目。我想要将isleader设置为true的集合中的一个项目作为选定项目,如果所选项目已更改,我希望更新isleader以反映这一点。

如果不在下拉列表和不断更新所选项目的集合之间创建无限循环,我该怎么做呢。

1 个答案:

答案 0 :(得分:0)

你可以看一眼。

this.selectedItem.peek()

而不是

this.selectedItem()

正如你可以做的那样。

两者都将返回fields值,但第一个将在不创建依赖项的情况下执行。换句话说,peek将获得该值,但它不会订阅它。