无论如何使用Chrome调试器检查敲除观察者?

时间:2016-03-25 16:26:00

标签: knockout.js google-chrome-devtools

我正在尝试使用Chrome调试器检查observable。我正在使用knockout插件,但它没有显示我感兴趣的observable的信息。我一直使用的解决方法是将observable设置为全局窗口对象并在控制台中检查它。由于几个原因,这很耗时。

2 个答案:

答案 0 :(得分:1)

如果我理解了这个问题(我可能不会,我通常不会使用调试器来检查变量,而是用console.debug代替我的代码),你无法看到你的observable中的值,因为它们是功能,您只能检查数据值。

您可以通过使用复制它们的函数订阅observable来保持您的值可用。一个方便的地方将附加到观察者本身。只需创建一种新的可观察对象:

function debugObservable(value) {
    var self = ko.observable();

    self.subscribe(function (newValue) {
        self.internalValue = newValue;
    });
    self(value);
    return self;
}

如果要检查它,请找到observable并查看其internalValue属性。

答案 1 :(得分:1)

如果您正在使用非缩小的挖空库,则可以检查在每个未计算的可观察对象上公开的computed变量。对于_latestValue,IIRC,您可以在state上公开的computed变量中找到公开的knockout变量。

总而言之,如果你引用var observable = ko.observable(); var computed = ko.computed(...); ... observable._latestValue; computed._state.latestValue; 的调试(又称非缩小)版本,你可以通过这些变量检查可观察量。

computed

编辑:我已修复computed._latestValue的案例,但请注意,如果您使用的是最新的淘汰赛(版本> = 3.4.1),则可以直接使用{{ 1}},因为它被公开,就像observable一样。