Sri*_*Vas 5 javascript angularjs angularjs-filter
我一直在尝试在角度控制器中制作过滤器,在过滤数组时区分大小写.
我的数据如下:
var stoneArr =
[
{
"stone_name": "Diamond",
"id": 16
},
{
"stone_name": "Ruby",
"id": 17
},
{
"stone_name": "Sapphire",
"id": 18
},
{
"stone_name": "Emerald",
"id": 19
}
];
Run Code Online (Sandbox Code Playgroud)
我的HTML输入如下:
<input type="text" name="stone_name" class="form-control" id="stone_name"
ng-model="propertyName" maxlength="15" required>
Run Code Online (Sandbox Code Playgroud)
我在控制器中的过滤器是:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}, true);
Run Code Online (Sandbox Code Playgroud)
这里的陷阱是当我在输入字段中输入"diamond"时
$scope.propertyName = "diamond";
Run Code Online (Sandbox Code Playgroud)
过滤器与此字符串不匹配"Diamond".
我不想从等式中删除完全匹配条件(true),如下所示:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}); //This won't work for me
Run Code Online (Sandbox Code Playgroud)
这对我不起作用,因为我想匹配确切的字符串来过滤数据.并且数据将具有唯一的"stone_name"值.此外,我不想使用任何循环,因为数组长度将超过1000+.无论如何我能做到这一点吗?
尝试使用 match 函数来获得不区分大小写的匹配:
var stoneObj = $filter('filter')(stoneArr, function (item) {
return item.stone_name.toLowerCase() == $scope.propertyName.toLowerCase();
},true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |