【发布时间】:2021-12-12 00:14:24
【问题描述】:
据我了解,$scope.categories 已经定义好了。那为什么我会收到这个错误并且无法从 Json 文件中访问数据呢?
这是我的控制器:
(function(){
app.controller('productsCtrl', ['$scope','$cookies', '$http', function($scope,$cookies,$http){
$http.get("controllers/data.json").then(function (response) {
$scope.categories = response.data;
});
$scope.specials = [categories[0].laptops[1], categories[1].accessories[0]];
}]);
})();
这是我的 Json 文件:
[
{
"laptops": [
{
"name": "Asus Laptop",
"price": 300
},
{
"name": "HP Notebook",
"price": 200
}
]
},
{
"accessories": [
{
"name": "WD Hard Drive",
"price": 100
},
{
"name": "WD Blue SSD",
"price": 700
}
]
}
]
【问题讨论】:
-
您需要注意几件事。首先,我假设您在以
$scope.specials = ...开头的行上收到此错误,对吗?您在该行中引用的categories标识符与$scope.categories不同。其次,将值分配给$scope.categories的代码行将在分配$scope.specials的行之后执行。这是因为$http.get是一个异步 进程。在使用 JavaScript 时,理解这一点非常重要。 -
您可能需要将分配
$scope.specials的行移到回调函数中,就在分配$scope.categories的行下方。 -
我尝试将分配 $scope.specials 的行移到回调函数中,就在分配 $scope.categories 的行下方并遇到更多错误。
-
你解决了我提到的另一个问题吗?您指的是
categories,但您可能指的是$scope.categories。 -
谢谢,在您的帮助和其他回复的人的帮助下,我确实解决了这个问题。谢谢一百万。
标签: javascript arrays json angularjs