我正在使用三元表达式来检查变量是否存在以相应地显示值,但是因为,我需要检查它是否存在并且其中有一些值,当变量未定义时它检查条件时失败。我该如何解决这个问题?
这是代码:
$('#select').selectize({
items: typeof icoop != "undefined" && icoop != null || icoop.selectedUsers.length < 1 ? icoop.selectedUsers : []
});
我明白了:
未捕获的ReferenceError:未定义icoop
答案 0 :(得分:5)
icoop
为undefined
,因此访问任何属性或函数都会失败。
在检查icoop
之前检查icoop.selectedUsers
:
$('#select').selectize({
items: (typeof icoop !== 'undefined' && icoop && icoop.selectedUsers && icoop.selectedUsers.length > 0) ? icoop.selectedUsers : []
});
您也可以稍微清理一下代码:
// Check for icoop existence. Assign a default value if it is undefined or null.
var icoop = (typeof icoop !== 'undefined' && icoop) || {};
$('#select').selectize({
items: (Array.isArray(icoop.selectedUsers) && icoop.selectedUsers) || []
});
答案 1 :(得分:0)
尝试
items: icoop != undefined && typeof icoop.selectedUsers != "undefined" &&...