Разорвать от подчеркивания петли с проблемами ворса
Ниже приведен код, пытающийся разорвать цикл, как только найден результат, возвращая true
ngModel.$parsers.unshift(function (viewValue) {
let names = scope.vm.names;
_.find(names, function (elem) {
let name = elem.name;
if (name && viewValue) {
if (name.toLowerCase() === viewValue.toLowerCase()) {
ngModel.$setValidity('unique', false);
return true; // break out of this loop
} else {
ngModel.$setValidity('unique', true);
}
}
});
return viewValue;
});
Код работает абсолютно нормально в соответствии с ожиданиями, но lint выдает ошибку как:
× Unnecessary 'else' after 'return'. (no-else-return)
27 | ngModel.$setValidity('unique', false);
28 | return true; // break out of this loop
29 | } else {
| ^
30 | ngModel.$setValidity('unique', true);
31 | }
32 | }
Как подавить эту ошибку или есть способ написать лучший код, чтобы избавиться от этого?
1 ответ
Решение
Чтобы устранить предупреждения lint, вы можете использовать приведенный ниже код.
if (name && viewValue) {
let equal = name.toLowerCase() === viewValue.toLowerCase();
ngModel.$setValidity('unique', !equal);
if (equal) {
return true; // break out of this loop
}
}
Чтобы установить unique
статус, логическое значение используется, и если это правда, то из if
, true
возвращается