【发布时间】:2017-01-31 11:10:34
【问题描述】:
我正在使用 Ionic 创建一个应用程序,并且在控制器中,我得到了一个从 app.js 解析的对象。这个对象有几个属性,包括一个像这样的数组:
{
"objectId":"id",
"objectName":"name",
"anArray":[{
"id":"id1",
"name":"name1",
"description":"Medium Rare",
"photographUrl":"/image1"
}, {
"id":"id2",
"name":"name2",
"description":"Baked Beans on Scrumptious Dark Rye Bread",
"photographUrl":"/image2"
}],
"emptyArray":[]
}
但是,问题是,我可以在 html 中使用 theObject.anArray 中的 (key, value) 遍历数组中的每个项目,但是在控制器中,我试图在 for 中遍历数组环形
for (var i = 0; i < $scope.theObject.anArray.length; i++) {...}
但是,我得到一个错误:
TypeError: 无法读取未定义的属性“长度”
谁能帮我弄清楚为什么我不能在控制器中访问这个数组,但我可以在 html 中访问。实际上,我无法访问控制器中对象的任何属性,看起来好像控制器是在使用“resolve”在 app.js 中解析对象之前实例化的,但是,我的印象是,这是'不应该发生,数据应该在控制器被实例化之前被解析
附:在控制器中我使用这个:
$scope.theObject = theObject;
谢谢
【问题讨论】:
-
你能做 console.log($scope.theObject) 吗?
-
只返回[object Object]
-
我们能得到更多关于 $scope.theObject 的信息吗?它来自哪里?
-
console.log(JSON.stringify($scope.theObject)).. 检查对象的结构。查看密钥是否存在。
-
JSON.stringify() 返回 {}。密钥确实存在,并在 HTML 中使用 theObject.anArray 中的 ng-repeat="(key, value)从网络活动中看到。
标签: javascript angularjs arrays json ionic-framework