簡體   English   中英

如何使角度$ filter過濾區分大小寫的字符串比較器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM