Javascript 获取对象返回的控制台错误

Javascript 获取对象返回的控制台错误,javascript,angularjs,Javascript,Angularjs,嗨,如果我得到scenariosViewAll.collectionBookObject={}数组,我必须禁用按钮,为此我使用函数返回以下代码: <button" ng-disabled="scenariosViewAll.isSetDisable(scenariosViewAll.collectionBookObject)">Create Book from Collection</button> 得到控制台错误如下,它工作正常,任何错误在我的代码 lib.min

嗨,如果我得到scenariosViewAll.collectionBookObject={}数组,我必须禁用按钮,为此我使用函数返回以下代码:

  <button" ng-disabled="scenariosViewAll.isSetDisable(scenariosViewAll.collectionBookObject)">Create Book from Collection</button>
得到控制台错误如下,它工作正常,任何错误在我的代码

lib.min.js:3762 TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at scenariosViewAllController.isSetDisable (app.min.js:29729)
    at fn (eval at compile (lib.min.js:3876), <anonymous>:4:415)
    at m.$digest (lib.min.js:3787)
    at m.$apply (lib.min.js:3790)
    at lib.min.js:3803
    at e (lib.min.js:3690)
    at lib.min.js:3693
lib.min.js:3762 TypeError:无法将未定义或null转换为对象
在Function.keys()处
在scenariosViewAllController.isSetDisable(app.min.js:29729)
fn时(编译时求值(lib.min.js:3876),:4:415)
m.$digest(lib.min.js:3787)
在m.$apply时(lib.min.js:3790)
在lib.min.js:3803
在e(lib.min.js:3690)
在lib.min.js:3693

您应该更改
对象
条件,并添加额外的条件来处理可能的
空值

 function isSetDisable(obj) {
           return obj != null && typeof(obj) == typeof({}) && Object.keys(obj).length === 0 ? true : false;
        }

typeof(obj==“Object”)
将始终返回truthy@Andreas那么什么是解决方案检查@SudhirMN使用typeof(obj)而不是typeof(obj==“Object”)(typeof(obj==“Object”)而不是typeof(obj==“Object”)的文档
function isSetDisable(obj) {
           return typeof(obj) === 'object' && Object.keys(obj).length === 0 ? true : false;
        }
 function isSetDisable(obj) {
           return obj != null && typeof(obj) == typeof({}) && Object.keys(obj).length === 0 ? true : false;
        }