我刚注意到我的应用中存在一个错误。我对几个选项进行了过滤,并将过滤器设置为严格,但它并没有严格执行。
ng-repeat="(cat, prodGrp) in products | filter:search:strict | groupBy: 'productGroup'"
数据:
filterOptions: {
"riskTolerance": ["Moderate", "Moderately Aggressive", "Aggressive"]
},
productList: [{
"title": "Scott Awesome Product",
"riskTolerance": ["Aggressive"],
"description": "Leverages good stuff\r\n",
"productGroup": "Group 1"
}, {
"title": "Test Product",
"riskTolerance": ["Moderately Aggressive", "Moderate"],
"description": "Offers good stuff\r\n",
"productGroup": "Group 1"
}
我使用filterOptions创建该数组中每个项目的选择框。 但是,如果我选择“积极的”,我会同时获得这两种产品。这很奇怪,因为我选择了严格的#39;
我查看了https://docs.angularjs.org/api/ng/filter/filter,但他们的示例并未使用所有可用的过滤器属性,而且我不确定是否还有其他可以引用的属性工作
非常感谢任何帮助。
谢谢JB Nizet。我现在知道我应该使用:true,而不是:strict。但是因为我现在把":真的"无处不在,当我选择" All"下拉菜单的选项,因为它试图匹配""严格来说,这个价值。
所以,我已经实现了此处的自定义过滤器:https://stackoverflow.com/a/28745675/203141
$scope.filterByCategory = function (input, search_param) {
return search_param === "" || angular.equals(input, search_param);
};