gpt4 book ai didi

javascript - 无法引用 JSON 中的元素

转载 作者:行者123 更新时间:2023-11-28 19:53:57 25 4
gpt4 key购买 nike

我正在 AngularJS Controller 中工作,试图获取当前月份的名称,这是我的代码:

$scope.months = {};
$scope.currentMonth = new Date().getMonth() + 1;
$http.get("json/months.json").success(function (data) {
$scope.months = data;
});
console.log($scope.months);
$scope.currentMonthName = $scope.months[0].name;
//Rest of file

这是我的 JSON 文件:

[
{"id": "0", "name": "January" },
{"id": "1", "name": "February"},
{"id": "2", "name": "March"},
{"id": "3", "name": "April"},
{"id": "4", "name": "May"},
{"id": "5", "name": "June"},
{"id": "6", "name": "July"},
{"id": "7", "name": "August"},
{"id": "8", "name": "September"},
{"id": "9", "name": "October"},
{"id": "10", "name": "November"},
{"id": "11", "name": "December"}
]

但是我的 $scope.currentMonth 抛出错误“TypeError:无法读取未定义的属性“名称””。我的理解是,他甚至没有正确检索 JSON 文件(未定义),但是在将此文件记录到控制台后,我可以看到他确实正确检索了它,这让我想知道我做错了什么?

最佳答案

$http 查询是异步的。

所以试试这个(你需要在查询回调中设置赋值):

$scope.months = {};
$scope.currentMonth = new Date().getMonth() + 1;
$http.get("json/months.json").success(function (data) {
$scope.months = data;
console.log($scope.months);
$scope.currentMonthName = $scope.months[0].name;
});

关于javascript - 无法引用 JSON 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com