我正在尝试使用Chrome调试器检查可观察对象。我正在使用knockout插件,但它没有显示我感兴趣的可观察对象信息。我一直在使用的解决方法是将可观察对象设置为全局window对象,并在控制台中进行检查。这对于多种原因来说都很耗时。
我正在尝试使用Chrome调试器检查可观察对象。我正在使用knockout插件,但它没有显示我感兴趣的可观察对象信息。我一直在使用的解决方法是将可观察对象设置为全局window对象,并在控制台中进行检查。这对于多种原因来说都很耗时。
var observable = ko.observable();
var computed = ko.computed(...);
...
observable._latestValue;
computed._state.latestValue;
编辑:我已经解决了computed
的情况,但是请注意,如果您使用最新的knockout(版本≥3.4.1),您也可以直接使用computed._latestValue
,因为它像一个observable
一样被公开。
computed
的情况下犯了一个错误,正确的是computed._state.latestValue
而不是computed.state._latestValue
。 - Zoltán Tamásiconsole.debug
),您无法看到可观察对象中的值,因为它们是函数,您只能检查数据值。
您可以通过订阅具有复制值的函数的可观察对象来保持值可用。一个方便的地方是附加到可观察对象本身。只需创建一种新类型的可观察对象:
function debugObservable(value) {
var self = ko.observable();
self.subscribe(function (newValue) {
self.internalValue = newValue;
});
self(value);
return self;
}
internalValue
属性。knockout
库,则可以检查每个 observable
上定义的 _latestValue
变量,但不适用于 computed
。对于后者,您将在 state
变量内找到它。 - Zoltán Tamási
ko.dataFor($0)
或ko.contextFor($0)
(这需要在窗口中使用ko)。控制台将记录您当前的绑定数据/上下文。 - user3297291