【发布时间】:2016-03-17 04:27:41
【问题描述】:
我有问题。请帮帮我。 我有 ko.computed,其中有一个检查 ko.isObservable 变量,我需要 ko.computed 不对这个变量的变化做出反应。 请看示例:
ko.computed(function() {
if ( ko.isObservable(test.peek()) ) {
console.log('TRUE');
}
});
------- 或 --------
ko.computed(function() {
if ( ko.isObservable(test).peek() ) {
console.log('TRUE');
}
});
我有错误: 无法读取 null 的属性“peek”
如果我这样做:
ko.computed(function() {
var testTest = ko.isObservable(test) ? test.peek() : false;
if ( testTest ) {
console.log('TRUE');
}
});
ko.computed 对 'test' 的变化同样会做出反应。
ko.computed 如何不对这个变量的变化做出反应?
【问题讨论】:
-
如果您不想对更改做出反应,为什么还要有
computed?只使用普通功能?这听起来像是XY Problem - 你想解决什么问题? -
对不起。我需要检查 ko.isObservable 并使用 peek() ,当我更改变量“test”时,ko.computed 不会做出反应,但我不知道如何将它们一起使用。另外,如果我使用例如: ko.isObservable(test) ? test.peek() : 假的;如果我更改变量“测试”,ko.computed 会做出反应。我需要类似 ko.isObservable(test).peek() 的东西,但“test”可以为空。