2017-04-17 99 views
1

下面是代码,试图一旦结果被返回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; 
       }); 

代码工作按预期绝对没发现打破循环,但皮棉抛出错误的:

× 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 |        } 

如何抑制这个错误或者是否有办法编写更好的代码来摆脱它?

回答

3

要解决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

+0

绝对天才,工作就像一个魅力。谢谢@Tushar – Mithun