在我的应用程序中,我有一个这样的代码:
"docDecesPere": $scope.orphanFatherDocumentUpload == null ?
(
res.candidatureSituationSociale != "undefined" ?
res.candidatureSituationSociale.docDecesPere :
null
) :
$scope.orphanFatherDocumentUpload.name
在某些情况下res.candidatureSituationSociale
我未定义,所以你可以看到我测试了它,所以如果它未定义我会影响res.candidatureSituationSociale.docDecesPere
到"docDecesPere"
,但我总是得到这个错误:
Cannot read property 'docDecesPere' of null
那么,即使我对它进行了测试,为什么我会得到它,我该如何解决呢?
答案 0 :(得分:2)
您将其封在"
中,因此您需要使用typeof
:
typeof res.candidatureSituationSociale != "undefined"
为安全起见,还要添加null
。
typeof res.candidatureSituationSociale != "undefined" &&
res.candidatureSituationSociale != null
答案 1 :(得分:1)
测试变量为null或未定义的可能更好的方法是测试它不等于null
或undefined
res.candidatureSituationSociale != null
除res.candidatureSituationSociale
和null
之外的所有undefined
值均为true
答案 2 :(得分:1)
如果您将变量检查为"undefined"
,这是一个字符串,则必须使用typeof(var)
。
在JS中,你可以通过这样做轻松检查变量是null
还是undefined
,
undefined || null ? 'true' : 'false'
你可能想尝试这样的代码,
"docDecesPere": !$scope.orphanFatherDocumentUpload ?
(
res.candidatureSituationSociale ?
res.candidatureSituationSociale.docDecesPere :
null
) :
$scope.orphanFatherDocumentUpload.name
在这种情况下,您必须确保res.candidatureSituationSociale.docDecesPere
不为空。