[英]how to make angular $filter to filter a case sensitive string comparators
我一直在嘗試在角度控制器中制作過濾器,在過濾數組時區分大小寫。
我的數據如下:
var stoneArr =
[
{
"stone_name": "Diamond",
"id": 16
},
{
"stone_name": "Ruby",
"id": 17
},
{
"stone_name": "Sapphire",
"id": 18
},
{
"stone_name": "Emerald",
"id": 19
}
];
我的HTML輸入如下:
<input type="text" name="stone_name" class="form-control" id="stone_name"
ng-model="propertyName" maxlength="15" required>
我在控制器中的過濾器是:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}, true);
這里的陷阱是當我在輸入字段中輸入“diamond”時
$scope.propertyName = "diamond";
過濾器與此字符串不匹配“Diamond”。
我不想從等式中刪除完全匹配條件(true),如下所示:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}); //This won't work for me
這對我不起作用,因為我想匹配確切的字符串來過濾數據。 並且數據將具有唯一的“stone_name”值。 此外,我不想使用任何循環,因為數組長度將超過1000+。 無論如何我能做到這一點嗎?
嘗試使用匹配函數來獲得不區分大小寫的匹配:
var stoneObj = $filter('filter')(stoneArr, function (item) {
return item.stone_name.toLowerCase() == $scope.propertyName.toLowerCase();
},true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.