Первая проблема - вы проверяете, соответствует ли $ scope.comments строка undefined, а не проверяете, определена ли она в данный момент в заданной области.
if($scope.comments === undefined) {
alert("comments are blank");//not printed
$scope.comments = '';
}
Обратите внимание, я только что удалил кавычки вокруг undefinedдля достижения этой цели.Вы даже можете использовать сокращение для этого, которое проверяет, является ли значение ложным.Вы можете найти полный список значений Falsey онлайн, но некоторые из них являются пустой строкой или не определены.
if(!$scope.comments) {
alert("comments are blank");//not printed
$scope.comments = '';
}
Далее, вы можете полностью избежать этого, просто инициализировав свою область $ $ с комментариями, подобными этому.
var app=angular.module("myApp",[]);
app.controller('myCtrl', function($scope,$http) {
$scope.comments = '';
$scope.validateFields = function() {
alert("Comments " + $scope.comments);
if(!$scope.comments){
alert("comments are blank");
}
else {
alert("comments exist");
}
}
});