代码之家  ›  专栏  ›  技术社区  ›  filur

获取计算的可观察依赖项

  •  2
  • filur  · 技术社区  · 8 年前

    假设我有一个如下所示的视图模型:

    this.foo = ko.observable();
    this.bar = ko.observable();
    
    this.bah = ko.pureComputed(function(){
        var bar = this.bar();
    }, this);
    
    this.baz = ko.pureComputed(function(){
        var foo = this.foo(),
            bah = this.bah();
    }, this);
    

    有什么方法可以动态地访问计算的可观测值的依赖项吗?在上面的示例中,使用 baz ,我想要一份清单 foo bar ,因为它们是可以触发计算的两个观测值。

    我需要这个用于调试目的。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jeroen    8 年前

    AFAIK没有文档化或公共API来获取此信息。此外,我认为(尽管不确定)KnockoutJS内部的工作方式是相反的:一个可观察者知道谁依赖它(“订阅者”),而不是知道它所依赖的可观察者的依赖关系。

    唯一接近的是 baz.getDependenciesCount() ,但这只给了你一个数字。你可以结账 the relevant source file 看看其他计算结果会显示什么。