我正在制作一个基本上有一组聚类的复选框列表。结构如下所示
群集1:
群集2:
第3组:
我想构建查询,相同群集中的选定项目将通过OR加入,来自不同群集的选定项目将通过AND加入..
e.g。 (Cluster1 Subitem 1 OR cluster1 subitem 2)AND(Cluster2 Subitem 3)AND(Cluster3 Subitem 1 OR cluster3 subitem 3)
在上面的示例中,所选项目是cluster1中的子项目1和2,集群2中的子项目3以及cluster3中的子项目1和3 ...
我已经设法用这个小提琴中的硬编码值来实现它:http://jsfiddle.net/rahulrulez/8YfmW/3/
代码段 -
switch (parent.Id()) {
case "IsIssue":
if (self.IsIssue.indexOf(item.Value()) == -1 && item.isChecked(false)) self.IsIssue.push(item.Value());
else self.IsIssue.remove(item.Value());
break;
case "Owner":
if (self.Owner.indexOf(item.Value()) == -1 && item.isChecked(false)) self.Owner.push(item.Value());
else self.Owner.remove(item.Value());
break;
case "Project":
if (self.Project.indexOf(item.Value()) == -1 && item.isChecked(false)) self.Project.push(item.Value());
else self.Project.remove(item.Value());
break;
}
如果我们不确定数字,如果我们从服务器获取群集作为响应,是否有任何方法可以优化它?
提前致谢, 拉胡
答案 0 :(得分:1)
你可以在isChecked observable上绑定你的复选框:
<input type="checkbox" data-bind="attr : { value : Name}, checked: isChecked">
然后在您的计算中创建您的查询,这是一个小提琴示例:http://jsfiddle.net/RapTorS/PRV42/