编辑:我认为问题出在我的self.providers = ko.computed()中,我在过滤器按钮点击时覆盖了我的提供者数组;
我有两个小提琴,两个都在HTML窗格中有所有内容,因为我在本地开发所有内容,而且将整个文件复制/粘贴到jsfiddle中更容易,而不是将其分解。
我还在一个相当大的虚拟数据对象中存根。 这从第110行开始,所以如果您在本地复制/粘贴/运行它,您肯定需要一个可以最小化该数据对象的编辑器!
第一个小提琴是在http://jsfiddle.net/82cK7/,似乎工作正常,但它是“实时”过滤。我刚开始使用提供程序名称过滤,然后添加了jquery UI datepicker以进行日期过滤。当您在绿色过滤器区域中更改任何内容时,这将过滤数据表。
此处的相关代码 self.filterClaims 位于第196行
第二小提琴是在http://jsfiddle.net/tq8zc/并且不能正常工作。在您单击“过滤器”按钮之前,此处的过滤不会启动(这是我真正想要的行为)。它会过滤表格,但它也会破坏我的 self.providers ,它会为该选择/下拉列表生成一个唯一的提供者名称列表。因此,在对此进行筛选之前,您将拥有多个提供程序名称的列表。过滤后,在点击“过滤器”之前,只有您选择的提供者。
此处的相关代码 self.claimsFiltered 第166行
我觉得我错过了一些非常明显的东西,并且想知道我是否可以让其他一双眼睛看着代码。
非常感谢您的帮助!
答案 0 :(得分:1)
这是一种简单的方法。我刚刚添加了一个包含最新过滤器属性的currentFilter
observable,过滤器按钮只是用新过滤器值更新了它。希望这可以帮助。更新了小提琴:http://jsfiddle.net/antishok/tq8zc/2/