获取计算的可观察依赖项

时间:2016-08-28 15:31:10

标签: javascript knockout.js

让我们说我有一个看起来像这样的viewmodel:

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

有没有办法动态访问计算的observable的依赖项?在上面的baz示例中,我想要一个包含foobar的列表,因为它们是可以触发计算的两个observable。

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

1 个答案:

答案 0 :(得分:1)

AFAIK没有记录或公共API来获取此信息。另外,我认为(虽然不确定)内​​部KnockoutJS反过来工作:一个observable知道谁依赖它("订阅者"),而不是依赖于知道它依赖的observables上。

唯一接近的是baz.getDependenciesCount(),但这只会给你一个数字。您可以查看the relevant source file以查看计算出的其他内容。

唯一可能有用的其他选项:包括KnockoutJS的unminified / debug版本,并使用调试器深入挖掘底层问题。