2014-01-30 24 views
0

我有一个基因敲除数组,用于填充表格。我也有用于数据绑定到过滤数组中的变量的输入。 。 。我需要使用这些输入来过滤我的数组,并只显示该数组....我怎么能做到这一点在我的FilteredAray下面的?是。根据输入过滤基因敲除阵列

<td><input data-bind="value: First, valueUpdate: 'afterkeydown'" /></td> 
<td><input data-bind="value: Second, valueUpdate: 'afterkeydown'"/></td> 
<td><input data-bind="value: Third, valueUpdate: 'afterkeydown'" /></td> 
<td><input data-bind="value: Fourth, valueUpdate: 'afterkeydown'"/></td> 

淘汰赛视图模型:

self.First = ko.observable(''); 
    self.Second = ko.observable(''); 
    self.Third = ko.observable(''); 
    self.Fourth = ko.observable(''); 

    self.FilteredArray = ko.computed(function() { 

     var First = self.First(); 
     var Second = self.Second(); 
     var Third = self.Third(); 
     var Fourth = self.Fourth(); 


     ? Filter self.PeopleArray() 


    }, self); 

我试图筛选基于您正在寻找滤镜阵列输入

+0

有没有原因你不使用observableArray?你在哪里编写你的valueUpdate绑定脚本? – beauXjames

+0

没有理由,我没有使用可观察数组,我最初是在[knockout文档](http://knockoutjs.com/examples/animatedTransitions.html)中的过滤器,但我有问题,因为我有多个过滤器。 。 。 – user3147424

+0

我忘了添加我已经有一个可观察数组...我想返回时,该数组的第一列包括第一个输入过滤器,第二列的数组包括第二个输入过滤器等 – user3147424

回答

1

可观察到的阵列PeopleArray()。它只返回一个新数组,只有返回true的结果形成回调。

self.array = ko.obserableArray(); 
    self.filter1 = ko.observable(); 
    self.filter2 = ko.observable(); 
    self.filter3 = ko.observable(); 
    self.filter4 = ko.observable(); 
    self.array = ko.observableArray(); 
    self.filteredArray = ko.computed(function() { 
     return ko.utils.arrayFilter(self.array(), function (item) { 
      //logic for filter1 
      //logic for filter2 
      //logic for filter3 
      //logic for filter4 
      //if result matches the filter for return true, if not test next filter 
      }); 
      }); 
    }); 
+0

这是我正在寻找的逻辑因为,我需要一次过滤所有四个输入。 – user3147424

+0

对于所有四个过滤器,ko.utils.arrayFilter中的逻辑是什么,如果它们包含过滤器值,我希望它们包含 – user3147424

+0

我不确定您的过滤器的逻辑是什么。你正在过滤一个字符串吗?小于另一个值的值。你需要填写这个逻辑。 – Matthew