2016-03-21 12 views

risposta

21

basta usare -

if(!a) // if a is negative,undefined,null,empty value then... 
{ 
    // do whatever 
} 
else { 
    // do whatever 
} 

questo funziona a causa della differenza == === da in javascript, che converte alcuni valori a "uguale "valori in altri tipi per verificare l'uguaglianza, al contrario di === che controlla semplicemente se i valori sono uguali. quindi fondamentalmente l'operatore == sa di convertire il "", null, indefinito in un valore falso. che è esattamente ciò di cui hai bisogno.

+1

Starei attento a quello quando si tratta di booleani. Ad esempio, con $ $ scope. $ Watch(), si desidera controllare se il nuovo valore non è definito o nullo, ma se tale valore è un valore booleano, l'utilizzo della soluzione non funzionerà. – Charleshaa

+0

Inoltre, si consiglia di prestare attenzione ai numeri, poiché potrebbe essere necessario catturare undefined e null, ma non 0. –

2

Si può fare

if($scope.test == null || $scope.test === ""){ 
    // null == undefined 
} 

se false, 0 e NaN può anche essere considerato come falsi valori si può solo fare

if($scope.test){ 
//not any of the above 
} 
0
if($scope.test == null || $scope.test == undefined || $scope.test == "" || $scope.test.lenght == 0){ 

console.log("test is not defined"); 
} 
else{ 
console.log("test is defined ",$scope.test); 
} 
+0

Spiegare anche il codice –

0

Si può anche fare un semplice controllo utilizzando la funzione,

$scope.isNullOrEmptyOrUndefined = function (value) { 
    return !value; 
} 
+0

Questo non funzionerebbe con valore = 0; –

Problemi correlati