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

How to have a observable collection that can be updated from two sources without causing a loop in knockout.js

本文关键字:集合 更新 knockout 循环 js 观察 有一个 何拥 两个      更新时间:2023-09-26

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

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

您可以偷看一下。

this.selectedItem.peek()

与相反

this.selectedItem()

就像你正在做的一样。

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