似乎无法捕捉到javascript为空
Can't seem to catch javascript being null
本文关键字:javascript 为空 更新时间:2023-09-26
我有以下代码,我正在尝试在发生错误/不返回数据时进行保护。就目前而言,我收到错误:
[Info] undefined (ionic.bundle.js, line 19387)
[Error] Error: undefined is not an object (evaluating 'data.data.length')
代码如下所示,可以理解的是它正在失败,因为 data.data.length 为空/未定义(没有故意返回数据进行测试)
SaveSubmitService.saveLocal('GetData', 'NearByHubs4S', $scope.options, false).then(function (data) {
$scope.return = data;
if (typeof data != "undefined") {
if (data.data.length > 0) {
$scope.bars = $scope.return.data;
$scope.noNot = false;
} else {
$scope.noNot = true;
}
} else {
$cordovaDialogs.alert('Could not retrieve data. Are you sure you''re online?', 'No Response', 'Ok');
}
$scope.$broadcast('scroll.refreshComplete');
});
奇怪的是,它通过类型为真,并在data.data.length为空时下降。
我试过做如果数据==空,数据==未定义,数据=="未定义",data.data.length ==未定义等。
基本上,如果长度为空,我正在尝试出错!
问题不在于data.data.length
为空。问题是您想在undefined
上使用length
属性。这意味着data
已定义且非 null,但它没有 data
属性,因此data.data
未定义。
而不是:
if (typeof data != "undefined") {
if (data.data.length > 0) {
做:
if (data && data.data) {
if (data.data.length > 0) {
在我看来
,你的警卫还不够,你需要检查data
,还需要data.data
:
$scope.return = data;
if (data && data.data) {
if (data.data.length > 0) {
$scope.bars = $scope.return.data;
$scope.noNot = false;
} else {
$scope.noNot = true;
}
} else {
$cordovaDialogs.alert('Could not retrieve data. Are you sure you''re online?', 'No Response', 'Ok');
}
守卫data && data.data
只有在data
为真(除null
、undefined
、0
、""
、NaN
或false
以外的任何值,都是假的)和data.data
为真时才为真。它不会尝试检查data.data
data
是否是假的。
您似乎只检查数据变量,而不是其数据成员。
尝试使用 if 语句(如 if (data && data.data& data.data.length> 0) 来检查空数据。
试试这个
if (data && data.data) {
if (data.data.length > 0) {
...
} else {
....
}
}
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- Javascript:如果数组有对象或不为空
- Javascript链接使目标为空
- Javascript 将字符串替换为
返回为空 - 如果设置了过期日期,则Javascript Cookie为空
- 在Javascript中,检查一个区域中的所有像素是否都为空
- 来自 MS Access 的 JavaScript 陷阱为空
- “语法错误:意外的令牌)”在 javascript 调用中,当 eval(value) 为空时
- 当第二个参数为空时管理JavaScript调用的构造
- JavaScript 如何检查包含数组的对象是否为空
- 传递给函数时对象为空的 JavaScript 数组
- Kinect V2 javascript joints 对象为空
- 当表为空时禁用 JavaScript 按钮
- 对于Python,获取WebDriverException:消息:u'[JavaScript错误:“e为空”;
- 如何使用javascript检查id字段为空的单选按钮
- 无法在javascript中访问PHP数组,初始化为数组的javascript对象在chrome开发工具中最终为空
- 似乎无法捕捉到javascript为空
- 使用JavaScript为空表单字段发送单独的错误消息
- 在URI中添加jQuery和javascript(为空)