Knockout中的循环依赖

时间:2013-06-13 17:02:32

标签: knockout.js knockout-2.0

我这里有一个大问题。

我有一个计算变量,在可观察数组发生变化后会更新。

问题是在计算计算变量之后,我需要使用新的计算值更改可观察数组值。

我该怎么做?

我的第一个方法是创建一个函数,该函数将订阅计算变量并对那里的observable进行所有必要的更改。问题?这将导致observable再次更新,这将再次通知计算。

我有一个循环依赖。

我不知道如何解决这个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我使用订阅解决了这类问题。我有两个可观察的数组,每个都有可观察的数组。我已经订阅了一个,它对我有用。以下是如何通过可观察数组进行订阅的示例..

self.teams.subscribe(function() {
            ko.utils.arrayForEach(self.teams(), function(item) {
                item.player.subscribe(function(newValue) {
                    if (self.teams() != "" && self.teams() != null) {
                        ko.utils.arrayForEach(self.GroupofTeams(), function (team) {
                            ..........code.....
                        });
                    } 
                });
            });
        });