我有一個簡單的3級完成表單。是否有解決方案從返回only when
跳過(刪除)a.3 a.3 =未定義?Angular,Javascript驗證從返回跳過var
scope.isValid = function() {
return a.1 && a.2 && a.3;
};
ng-disabled="!isValid()"
我有一個簡單的3級完成表單。是否有解決方案從返回only when
跳過(刪除)a.3 a.3 =未定義?Angular,Javascript驗證從返回跳過var
scope.isValid = function() {
return a.1 && a.2 && a.3;
};
ng-disabled="!isValid()"
我想這應該做的伎倆:
scope.isValid = function() {
return (a.3 === undefined ? a.1 && a.2 : a.1 && a.2 && a.3);
}
你應該瞭解ternary operators,它是一個極其強大的工具,一旦你得到它的抓地力。
你將不得不減少正常化
(a.1 && a.2 && a.3) || (a.1 && a.2),
,或者你可以使用數組減少找到一個非空/空值。
[a.1, a.2, a.3].reduce(function(a,b) { return b || a; }, null);
這是三元運算符
return (a.3 === undefined)?(a.1 && a.2):(a.1 && a.2 && a.3);
工作中很可能不使用它,但我認爲這種方式更具有可讀性。
'&& a.3'無用 – Tushar
'&& a.3'將'(a.1 && a.2 && a.3)'變成一個falsy值,然後按照(a.1 && a.2)',否則會返回'a.3'。 – ArcSine
這意味着它是無用的。如果'a.3'錯誤,則返回'a.1 && a.2',否則返回false。這與'if(a.3){return a1 && a2&& true;} else {return a1 && a2}' – Tushar