javascript - knockout - ko.compated 使用 ko.isObservable 和 peek()

标签 javascript knockout.js

我有一个问题。请帮帮我。 我有 ko.compulated,它有一个检查 ko.isObservable 变量,我需要 ko.compulated 不对这个变量的更改使用react。 请参阅示例:

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.compated 仍然会对“测试”上的更改使用react。

ko.compulated 如何不对这个变量的更改使用react?

最佳答案

如果您想重新计算“测试”值更改的计算结果,并且不知道“测试”是否可观察:

ko.computed(function() {
      if ( ko.unwrap(test) ) {
        console.log('TRUE');
      }
});

我也不太明白 - 为什么你在计算中使用 peek() ?这可以防止在“测试”值发生变化时重新计算计算值。

更新

我不想对“测试”值变化使用react:

ko.computed(function() {
      var testValue = ko.isObservable(test) ? test.peek() : test;
      if ( testValue ) {
        console.log('TRUE');
      }
 });

关于javascript - knockout - ko.compated 使用 ko.isObservable 和 peek(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220481/

相关文章:

javascript - 如何在 jquery 中隐藏带有标签的表单组输入框?

javascript - 事件元素应该在 Owl Carousel 的中间

javascript - 如何创建带有导航箭头的图像轮播和点击时更改的播放/暂停

javascript - 如何模拟 JSON 导入 Jest TypeScript

architecture - ASP.Net Web API 架构选择

javascript - knockout foreach 动态设置 ID

javascript - 如何在 jquery 方法中创建 if 语句

data-binding - Knockout.js - 单击绑定(bind)参数获取事件发送者的文本

javascript - Knockout-foreach 嵌套数组-不起作用

对模板之一的 observableArray 进行排序