Angular1加载本地JSON文件报错ReferenceError: data is not defined
解决AngularJS加载本地JSON时的ReferenceError: data is not defined错误
嘿,我来帮你搞定这个问题!你遇到的ReferenceError: data is not defined错误其实是两个小细节问题导致的,咱们一步步来修正:
1. 移除GET请求里多余的data参数
你的$http配置里写了data: data,但这个data变量根本没定义,而且GET请求不需要设置请求体的data参数(GET的参数是通过URL查询字符串传递的,不是请求体),这就是报错的直接原因。
2. 正确解析JSON响应结构
你的JSON文件外层是一个包含data属性的对象,所以$http成功回调里拿到的响应数据,需要取它的data属性才能拿到你要的职位数组。
修正后的完整控制器代码
$scope.items = []; $scope.loadData = function () { var httpRequest = $http({ method: "GET", url: 'joblist.json' // 移除了无效的data参数 }).success(function (responseData, status) { // 从响应数据中取出内层的data数组 $scope.items = responseData.data; }).error(function(error) { // 新增错误处理,方便调试加载失败的情况 console.error('加载职位数据失败:', error); }); };
额外注意事项
- 确保
joblist.json文件的路径正确:如果它和你的HTML文件在同一目录,'joblist.json'是对的;如果在子文件夹(比如assets目录),要写成'assets/joblist.json'。 - 可以在浏览器的开发者工具(Network标签)里查看请求状态,确认JSON文件是否成功加载,避免因为路径错误导致的隐性问题。
内容的提问来源于stack exchange,提问作者Sydnie
相关产品推荐
相关产品推荐

