使用挖空复选框进行多重排序
multiple sorting using knockout checkboxes
我正在尝试组织一个包含 2 个布尔值和价格的可观察数组。我需要通过挖空和 2 个复选框,通过这两个值过滤元素。还可以按价格(升序和降序)对显示的值进行排序。我没有输入任何代码,因为我是淘汰赛的新手,我看不到进行这些操作的方法。感谢指导我的人。
简单的答案,我尝试过这个,但对我的个人视图模型进行了一些更改以满足我的需求。所以,我做了这样的东西:
self.elementsToShow = ko.pureComputed(function () {
// Represents a filtered and ordered list of elements
var recomend = self.showRecommended(); //chekbox 1
var special = self.showSpecial(); // checkbox2
var sorting = self.currentSortDirection(); //sort direction: price or rating //ascending or descending, represented by an observableArray with that conditions and the //selectedSortDirection
if (!recomend && !special) return self.myOservableArray().sort(function (a, b) {
//in case that no one of the checkboxes where selected but the sort direction was't by default
if (sorting.price != null) {
var fp = sorting.price ? -1 : 1;
ap = parseInt(a.price);
bp = parseInt(b.price);
return ap == bp ? 0 : (fp * (ap < bp ? -1 : 1));
}
else if (sorting.rate != null) {
var f = sorting.rate ? -1 : 1;
ar = parseFloat(a.rating);
br = parseFloat(b.rating);
return ar == br ? 0 : (f * (ar < br ? -1 : 1));
}
});
return ko.utils.arrayFilter(self.myOservableArray(), function (element) {
return (element.recommended != "0" && recomend) || (element.offer != "" && special); //some other conditions for the relection of the checkboxes in the observableArray
}).sort(function (a, b) {
if (sorting.price != null) {
var fs = sorting.price ? -1 : 1;
ap = a.price;
bp = b.price;
return ap == bp ? 0 : (fs * (ap < bp ? -1 : 1));
}
if (sorting.rate != null) {
var fu = sorting.rate ? -1 : 1;
ar = a.rating;
br = b.rating;
return ar == br ? 0 : (fu * (ar < br ? -1 : 1));
}
});
}, self);
相关文章:
- 基于单选按钮和复选框的数据表排序
- 我的表排序器中的列排序将覆盖表标题中的复选框
- 如何在具有分页功能的表格排序器中取消选中所有复选框
- 在javascript中对复选框值进行排序
- 如何按类、值和选中项对复选框进行排序
- 在angularjs中按复选框值排序
- 带有表格排序器的多选复选框
- 使用挖空复选框进行多重排序
- 带有复选框的排序表:内容不再可见
- jQuery DataTables按n列复选框排序
- 复选框在Slick Grid中排序不正确
- 在Knockout.js中,如何在映射后根据复选框字段对viewModel项进行排序
- 按字母顺序对输入/复选框元素进行排序
- 如何防止点击“全选”复选框影响标题和列排序
- 在排序之前,从部分复选框列表中排除项目
- 排序html表根据列表的复选框在表列
- 如何对带有复选框的html表排序
- 使用复选框对列进行排序.不;不起作用.我被卡住了
- JS表按复选框排序
- 带有标签的可排序复选框