【发布时间】:2021-02-28 21:24:41
【问题描述】:
如何解决无法读取未定义的属性“hasOwnProperty”?
使用 Angular.JS 1.3
在 parentConroller 中分配 $rootScope.settings 中的响应数据。
所以 rootScope 会是这样的
$rootScope.settings = api.data;
//sample
$rootScope.settings:{
"lastLogin":"2005-01-01",
"isStudent": true,
"assignedCourse": "['JAVA + DS']"
}
并访问 anotherController.JS 中的 $rootScope 数据。但是在这里我不希望我的数组在字符串中,所以要删除双引号,我尝试了以下方法
尝试 1:
if($rootScope.settings.hasOwnProperty('assignedCourse')) {
$rootScope.settings.assignedCourse = ['JAVA + DS']
}
尝试 2:
$rootScope.settings.assignedCourse = JSON.parse(rootScope.settings.assignedCourse.replace(/'/g, '"'));
// giving me Error: Unexpected token ' in JSON at position 1
尝试 1 在应用程序中工作,但当我运行显示 TypeError: Cannot read property 'hasOwnProperty' of undefined
的业力调试器时它失败了真的不知道如何解决这个问题。努力修复超过一天
我已经完成了一些与我的问题相关的 SO。但没有得到更好的解决方案
旁注:目前仅使用普通的旧 JavaScript,而不是 es6 或更新版本。
【问题讨论】:
-
您的
$rootScope对象没有属性[settings],因此返回undefined($rootScope.settings === undefined)。尝试访问undefined上的属性会导致您的错误。所以问题不在于您的数组,而在于您的$rootScope具有不同的值 -
标签: javascript angularjs regex object