在您回顾这个问题之前,我确切地知道导致此错误的原因以及原因。我有一个对象,我正在通过检查它的长度来有效地测试它是否为空;当数组为空时,每次SwingWorker
调用会导致大约30个错误。
有没有办法阻止这些错误被不断抛出/是否有更好的方法来测试数组是否充满了某些东西?
JS:
$scope.$on('$ionicView.enter')
错误:
$scope.checkLeague = function () {
if ($scope.favs.length > 0){
return false;
}
return true;
};
编辑:进一步查看问题后,null is not an object (evaluating '$scope.favs.length')
初始化为$scope.favs
以尝试解决此错误,但后来在此设置为空数组代码,因为这是一个REST响应。问题仍然在于成功捕获一个总是被实例化但可能为空的数组。将数组记录到控制台将始终生成null
。
答案 0 :(得分:0)
尝试在以下之前检查$ scope.favs值:
$scope.checkLeague = function () {
if ($scope.favs && $scope.favs.length > 0){
return false;
}
return true;
};
答案 1 :(得分:0)
您可以尝试这样的事情:
$scope.checkLeague = function () {
if ($scope.favs.hasOwnProperty("length") && $scope.favs.length > 0){
return false;
}
return true;
};
答案 2 :(得分:0)
具有“0”或null
值的length属性并不一定意味着该对象为空。检查一下
var a = [1,2,3,4];
a.key1 = "test";
a.length; // <- 4
Object.keys(a); // <- ["0", "1", "2", "3", "key1"]
a.length = null;
a; // <- [];
Object.keys(a); // <- ["key1"]
Object.getOwnPropertyNames(a); // <- ["length", "key1"]
您可能需要查看Object.keys().length