【发布时间】:2015-11-21 16:11:15
【问题描述】:
我有一个关于 knockoutjs 中的 arrayFilter 的问题,我将如何使用 2 个应该相关的不同下拉列表过滤我的列表,所以如果我选择了一种类型的建筑物但没有区域,我应该显示所有该类型的建筑物,但是如果我在哪里选择建筑选项和区域选项,过滤应该考虑到这一点,我现在已经在原型上工作了 2 天,但无法弄清楚如何在 arrayfilter 中返回正确的项目。
http://jsfiddle.net/vGg2h/138/
目前,我通过视图模型制作了所有模型并粘贴到数据中,并且连接了一个过滤列表,但是我不明白如何通过 foreach 过滤器和 arrayFilter 返回正确的项目,这就是它得到的地方有点模糊。
self.filteredList = ko.computed(function () {
var filters = [];
filters.push(self.selectedBuilding());
filters.push(self.selectedArea());
var currentList = [];
ko.utils.arrayForEach(filters, function (filter) {
if (typeof filter !== "undefined") {
ko.utils.arrayFilter(self.products(), function (item) {
if (filter.id == item.areaId || filter.value == item.buildingId) {
currentList.push(item);
}
});
}
});
return currentList;
});
提前感谢您的任何回答!
【问题讨论】: