我在AngularJS服务中有这个功能:
self.IsValid = function (entity) {
if (entity == undefined || entity == "undefined")
return false;
if (entity == null)
return false;
if (entity == "00000000-0000-0000-0000-000000000000")
return false;
return true;
}
工作样本here。
我能做些什么来改善这个?或者可能有一个更好的方式?
PS:Resharper说entity == null
检查总是错误的,但感觉不对,我本可以通过null
。
答案 0 :(得分:2)
您可以使用
self.IsValid = function(entity) {
return (entity !== "undefined" && entity !== "00000000-0000-0000-0000-000000000000") && !!entity;
};
entity !== "undefined" && entity !== "00000000-0000-0000-0000-000000000000"
:检查entity
变量的值是否不是'undefined'
和'00000000-0000-0000-0000-000000000000'
。如果表达式求值为false
,则返回结果。!!
会将值转换为Boolean。请参阅What is the !! (not not) operator in JavaScript? 答案 1 :(得分:1)
如果您可以识别所有无效案例,那么您只需将它们列在一个数组中,然后检查它们的权利
var invalid = [undefined, "undefined", null, "0000-..."];
var isInArray = invalid.indexOf(entity) >= 0;
return isInArray;
这比大型复合布尔表达式更容易维护。您甚至可以将此列表移到单独的配置文件中,以便共享并注入到单独的服务中。