2016-05-03 14 views
0

私は3つのレベルで簡単な完了フォームを持っています。戻り値からa.3をスキップ(削除)する方法はありますか?only when a.3 = undefined?私は、これはトリックを行うべきだと思う角度、Javascript検証skip var from返信

scope.isValid = function() { 
     return a.1 && a.2 && a.3; 
    }; 


ng-disabled="!isValid()" 

答えて

0

scope.isValid = function() { 
    return (a.3 === undefined ? a.1 && a.2 : a.1 && a.2 && a.3); 
} 

あなたはおよそternary operatorsを学ぶ必要があるあなたがそれにグリップを得れば、それはめちゃくちゃ強力なツールです。

0

あなたは

(a.1 && a.2 && a.3) || (a.1 && a.2), 

に正常化するために削減しなければならないか、配列が最後の非ヌル/空の値を見つけるために減らすことができます。

[a.1, a.2, a.3].reduce(function(a,b) { return b || a; }, null); 
+0

'&& a.3'は役に立たない – Tushar

+0

' && a.3'は '(a.1 && a.2 && a.3)'を偽値に変え、 '(a.1 && a.2) 'を返し、そうでなければ' a.3'を返します。 – ArcSine

+0

それは役に立たないということです。 'a.3'が偽であれば、' a.1 && a.2'を返し、それ以外の場合はfalseを返します。これは 'if(a.3){return a1 && a2&& true;} else {return a1 && a2}'と同じです。 – Tushar

0

これは、それを使用しないように、おそらく可能ですが、私はこの方法をより読みだと思う三項演算子

return (a.3 === undefined)?(a.1 && a.2):(a.1 && a.2 && a.3); 

のための仕事です。