2016-03-21 10 views

Odpowiedz

21

wystarczy użyć -

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

to działa z powodu różnicy == od === w JavaScript, który przekształca niektóre wartości na „równe "wartości w innych typach w celu sprawdzenia równości, w przeciwieństwie do ===, który po prostu sprawdza, czy wartości są równe. więc w zasadzie operator == wie, aby przekonwertować "", null, undefined na fałszywą wartość. który jest dokładnie tym, czego potrzebujesz.

+1

byłbym ostrożny z tym w kontaktach z wartości logicznych. Używając '$ scope. $ Watch()' na przykład, chcesz sprawdzić, czy nowa wartość jest niezdefiniowana lub null, ale jeśli ta wartość jest wartością logiczną, użycie twojego rozwiązania nie będzie działać. – Charleshaa

+0

Należy również zachować ostrożność przy liczbach, ponieważ możesz chcieć złapać niezdefiniowane i zerowe, ale nie 0. –

2

Można zrobić

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

jeśli false, 0 i NaN można również uznać za fałszywymi wartościami można po prostu zrobić

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

Wyjaśnij swój kod również –

0

Można również zrobić prostą kontrolę przy użyciu funkcji

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

Nie zadziałałoby to przy wartości = 0; –