【问题标题】:Circular dependency in Knockout淘汰赛中的循环依赖
【发布时间】:2013-06-10 04:26:21
【问题描述】:

我这里有个大问题。

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

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

我该怎么做?

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

我有一个循环依赖。

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

有什么想法吗?

【问题讨论】:

  • 你能发布你的代码吗?我真的很困惑为什么计算会想要更新它的依赖项之一。这听起来不对。
  • 是的邮政编码。通常,循环依赖是一个设计错误。
  • Knockoutjs 有防止循环引用的预防措施,所以它开箱即用,请参阅:jsfiddle.net/mPpcR/1。但结果是否正确取决于您的实际计算。

标签: knockout.js knockout-2.0


【解决方案1】:

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

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.....
                        });
                    } 
                });
            });
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2016-12-31
    • 2013-10-07
    • 2013-11-25
    相关资源
    最近更新 更多