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