2016-03-21 2 views

ответ

21

просто использовать -

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

это работает из-за разницы == из === в JavaScript, который преобразует некоторые значения в «равны «значения в других типах для проверки равенства, в отличие от ===, который просто проверяет, равны ли значения. поэтому в основном оператор == знает, чтобы преобразовать значение «", null, undefined в значение false. который именно то, что вам нужно.

+1

Я хотел бы быть осторожным с этим при работе с булевыми. Например, используя '$ scope. $ Watch()', вы хотите проверить, не определено ли новое значение или null, но если это значение является логическим, использование вашего решения не будет работать. – Charleshaa

+0

Вы также должны быть осторожны с числами, так как вы можете захотеть поймать неопределенные и нулевые, но не 0. –

2

Вы можете сделать

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

если false, 0 и NaN также можно рассматривать как ложные ценности, вы можете просто сделать

if($scope.test){ 
//not any of the above 
} 
-1

Вы можете использовать функцию углов, называемую angular.isUndefined(value), возвращает boolean.

Вы можете прочитать больше о функциях угловых здесь: AngularJS Functions (isUndefined)

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

Объясните свой код –

0

Вы также можете сделать простую проверку с помощью функции,

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

Это не будет работать со значением = 0; –

Смежные вопросы