我一直在研究使用AngularJS的学位程序查找工具。我正在尝试构建的是电子商务风格的侧边栏过滤选项。我已经获得了Degree Levels和一个自由形式的搜索字段,但我无法让Locations Offered过滤器与单选按钮配合使用。
这是我的控制者:
$scope.search = function (row) {
return (
angular.lowercase(row.DPNAME).indexOf(angular.lowercase($scope.query) || '') !== -1 ||
angular.lowercase(row.DPCAREERS).indexOf(angular.lowercase($scope.query) || '') !== -1 ||
angular.lowercase(row.DPCONCENTRATIONS).indexOf(angular.lowercase($scope.query) || '') !== -1
);
};
$scope.DLsearch = function (row) {
return (
row.DPDEGREELEVEL.indexOf($scope.qDegreeLevel || '') !== -1
);
};
$scope.LOCsearch = function (row) {
return (
row.DPONCAMPUSMESA == 'Yes'
);
};
它的最后一个过滤器不能正常工作。如果将“DPONCAMPUSMESA”替换为任何其他位置字段(例如DPONCAMPUSLISLE或DPNONTRADNMCALCENTRALIL),它会正确过滤数据。但我无法将其连接到单选按钮。
我也对过滤器采用不同的方法。
以下是我一直致力于的CodePen:http://codepen.io/ksherman/pen/yYqGgx?editors=101 如果您对JSON结构感兴趣:http://www.jsoneditoronline.org/?id=5145f3cca9dd9d5e5eaef2e39e2b2808
答案 0 :(得分:1)
我打开了您的CodePen,最后一个过滤器完全按照它的编写方式工作 - 只留下两行符合条件的行(row.DPONCAMPUSMESA =='是')。为了使它更通用,尝试:
$scope.LOCsearch = function (row) {
if (!$scope.qLocation) {
return true; // no filter or 'All' option
} else {
return row[$scope.qLocation] == 'Yes';
}
};