繁体   English   中英

使用lint问题从下划线循环中断

[英]Break from underscore loop with lint issues

下面是代码,尝试通过返回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 |                             }

如何抑制此错误或有没有办法编写更好的代码来摆脱这个?

要解决lint警告,您可以使用以下代码。

if (name && viewValue) {
    let equal = name.toLowerCase() === viewValue.toLowerCase();
    ngModel.$setValidity('unique', !equal);
    if (equal) {
        return true; // break out of this loop
    }
}

要设置unique状态,使用boolean,如果为true,则返回if ,返回true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM