【发布时间】:2014-07-22 00:05:46
【问题描述】:
我正在创建一个个人网站,我可以在其中不断更新内容,而无需操纵HTML。我试图通过简单地加载和更新JSON 文件来实现这一点。但现在,我无法将 JSON 数据加载到 scope 变量中。
HTML
<!doctype html>
<html>
<head>
<script src="angular.min.js" type="text/javascript"></script>
<script src="maincontroller.js" type="text/javascript"></script>
</head>
<body>
<div ng-app="mainApp" ng-controller="mainController">
<div id="content">
<div ng-repeat="content in contents">
<h2>{{content.heading}}</h2>
<p>{{content.description}}</h2>
</div>
</div>
</div>
</body>
</html>
maincontroller.js
var myapp = angular.module('mainApp', []);
myapp.controller('mainController',function($scope,$http){
$scope.contents = null;
$http.get('mainContent.json')
.success(function(data) {
$scope.contents=data;
})
.error(function(data,status,error,config){
$scope.contents = [{heading:"Error",description:"Could not load json data"}];
});
//$scope.contents = [{heading:"Content heading", description:"The actual content"}];
//Just a placeholder. All web content will be in this format
});
这就是JSON 文件的样子
[
{"heading":"MyHeading","description":"myDescription"},
]
我实际上尝试了给定here 的解决方案,但它没有加载存储在同一文件夹中的JSON 文件。我得到的输出来自错误处理函数,如前所述,Error: Cannot load JSON data。
我做错了什么?
编辑:我将相同的代码放在plunker 上,它工作正常。它只是无法在我的本地机器上运行。
【问题讨论】:
-
尝试删除结尾的逗号。确保 JSON 验证 @jsonlint.com
-
出于安全考虑,大多数浏览器会阻止对文件系统的 AJAX 请求,这可能会导致此错误...您是在本地服务器上运行代码,还是直接在浏览器中打开 HTML 文件?如果您还没有设置一个简单的服务器,则需要设置。
标签: javascript json angularjs