我有一个功能,需要检查输入是否已经存在数据库中的现有照片。它已经可以显示它是否已有现有照片。我现在的问题是,如果我输入一个ID并且没有任何照片,则会显示错误。你能帮我解决这个错误吗?
$scope.checkPhoto = function(newSCPID) {
if ($scope.newID == undefined) {
alert('Please input new id');
} else {
console.log($scope.newID);
$scope.loadingloader = true;
$('#loginloader').show();
Service.checkPhoto($scope.newID)
.then(function(data) {
//$rootScope.loader = true;
$scope.checkedPhoto = data.data[0].photos;
//alert(data.data[0].photos);
if (data.data[0].photos == undefined) {
alert('Please input newid');
}
// alert($scope.checkedPhoto);
//$rootScope.loader = false;
$('#loginloader').hide();
$('#notif').hide();
// Original Values
});
}
}
如果我输入的新ID没有现有照片,则API会显示data.data [0] .photos未定义的错误。
我需要显示一个标题,表明该特定新ID中没有现有照片。我怎么能这样做
答案 0 :(得分:0)
您正在检查未定义的照片,因此您需要检查此data.data[0]
而非此data.data[0].photos==undefined
,因为您试图在{{1}时检查data.data[0].photos==undefined
已经是undefined,undefined没有属性照片。
答案 1 :(得分:0)
在分配照片之前检查data.data [0];
Service.checkPhoto($scope.newID)
.then(function(data){
//$rootScope.loader = true;
if(data.data[0]) {
$scope.checkedPhoto=data.data[0].photos;
if(data.data[0].photos==undefined)
{
alert('Please input newid');
}
$('#loginloader').hide();
$('#notif').hide();
// Original Values
}
}
);
答案 2 :(得分:0)
看起来data.data
应该是一个数组。因此,在尝试操作其项目之前,最好检查数组是否为空。
.then(function(data){
if (data.data.length && data.data[0].photos) {
$scope.checkedPhoto = data.data[0].photos;
} else {
alert('Please input newid');
}
$('#loginloader').hide();
$('#notif').hide();
}
答案 3 :(得分:0)
编写一个可以用于整个应用程序的常用函数。
function isUndefinedOrNull(val) {
return angular.isUndefined(val) || val === null || val === '';
}
在执行工作之前检查你的价值。以下是以下示例:
if(!isUndefinedOrNull(data.data && data.data[0].photos))
{
alert('Please input newid');
}
答案 4 :(得分:-1)
您可以将其包装在try{} ... catch(e){}
块中。
list