2016-08-28 3 views
1

Допустим, что у меня есть 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); 

Есть ли способ, чтобы получить доступ к зависимости вычисляемого наблюдаемых динамически? В приведенном выше примере с baz мне нужен список с foo и bar, так как они являются двумя наблюдаемыми, которые могут вызывать вычисление.

Мне это нужно для отладки.

ответ

1

AFAIK для получения этой информации нет документального или общедоступного API. Кроме того, я думаю (хотя и не уверен), что внутренне KnockoutJS работает наоборот: наблюдаемый знает, кто зависит от него («подписчики»), в отличие от зависимости, знающей о наблюдаемых, от которых это зависит.

Единственное, что приходит близко, это baz.getDependenciesCount(), но это только дает вам номер. Вы можете проверить the relevant source file, чтобы узнать, что другие вещи выставляют.

Единственный другой вариант, который может помочь: включить версию UnlockizedJS с незавершенной/отладочной версией, а также использовать отладчик для поиска основной проблемы.

+0

Я полагаю, что нет способа узнать, что наблюдаемое, которое вызвало вычисление так же хорошо? Я посмотрел на 'computedContext', но не нашел ничего полезного там ... – filur

+0

@filur Кстати, я недавно [ответил] (http://stackoverflow.com/a/38604988/419956) с« отрицательным »на тот точный вопрос. – Jeroen

+0

Я вижу ... Ну ладно, спасибо в любом случае! – filur

Смежные вопросы