Próbowałem zrobić filtr w sterowniku kątowym, który rozróżnia wielkość liter podczas filtrowania tablicy.
Moje dane jest jak poniżej:
var stoneArr =
[
{
"stone_name": "Diamond",
"id": 16
},
{
"stone_name": "Ruby",
"id": 17
},
{
"stone_name": "Sapphire",
"id": 18
},
{
"stone_name": "Emerald",
"id": 19
}
];
Moje wejście HTML jest jak poniżej:
<input type="text" name="stone_name" class="form-control" id="stone_name"
ng-model="propertyName" maxlength="15" required>
Mój filtr w regulatorze jest:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}, true);
Oto pułapka jest to, że kiedy Wprowadzam "diament" w polu wejściowym
$scope.propertyName = "diamond";
Filtr nie pasuje do tego ciągu przy pomocy "Diamentu".
Nie chcę, aby usunąć dokładnie warunek match (true) z równania jak pokazano poniżej:
var stoneObj = $filter('filter')(stoneArr, {stone_name:$scope.propertyName}); //This won't work for me
To nie będzie działać dla mnie, ponieważ chcę, aby dopasować dokładnie ciąg do filtrowania dane. Dane będą miały unikalne wartości "stone_name". Również nie chcę używać żadnych pętli, ponieważ długość tablicy przekroczy 1000+. Czy mimo to mogę to osiągnąć?
Wewnętrznie filtr $ robi pętlę. Zrobiłbym jedną funkcję z tym porównywaniem lub stworzyć inny określony filtr –