如何获取angularjs中本地的json文件
您好,我正在使用angularjs,希望从本地构建的json文件中获取数据。我尝试使用$http,但没有成功。你能告诉我其他的方法吗如何获取angularjs中本地的json文件,angularjs,Angularjs,您好,我正在使用angularjs,希望从本地构建的json文件中获取数据。我尝试使用$http,但没有成功。你能告诉我其他的方法吗 $http.get("job.json") .success(function(response) { $scope.big=response; }); 这是我使用的方法,这是我的json代码 { “天”:[{ “dayname”:“Sun,2015年8月23日”, “日期”:“2015-08-23”, “小时”:“
$http.get("job.json")
.success(function(response) {
$scope.big=response;
});
这是我使用的方法,这是我的json代码
{
“天”:[{
“dayname”:“Sun,2015年8月23日”,
“日期”:“2015-08-23”,
“小时”:“小时排列(24列)”
}, {
“dayname”:“2015年8月24日星期一”,
“日期”:“2015-08-24”,
“小时”:“小时排列(24列)”
}, {
“dayname”:“2015年8月25日星期二”,
“日期”:“2015-08-25”,
“小时”:“小时排列(24列)”
}, {
“dayname”:“2015年8月26日星期三”,
“日期”:“2015-08-26”,
“小时”:“小时排列(24列)”
}]
}
您正在使用chrome浏览器吗
如果是,问题应该是chrome中的web安全问题
请尝试使用运行chrome
“chrome.exe--user data dir=“C:/chrome dev session”--从Run命令中禁用web安全性
然后在浏览器中打开文件。你会得到的 您应该使用angular js的工厂特性, 下面是完整的javascript文件。哦,顺便说一句,我修正了你的json语法错误。如果使用对象类型,则必须同时引用这两个值
var mockDataForThisTest = "json=" + encodeURI(JSON.stringify([
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
}
]));
var app = angular.module('myApp', []);
function PeopleCtrl($scope, $http) {
$scope.people = [];
$scope.loadPeople = function() {
var httpRequest = $http({
method: 'GET',
url: '/echo/json/',
data: mockDataForThisTest
}).success(function(data, status) {
$scope.datas = data;
});
};
}
下面是显示json的示例HTML示例
<div ng-app="myApp">
<div ng-controller="PeopleCtrl">
<p> Click <a ng-click="loadPeople()">here</a> to load data.</p>
<table>
<tr>
<th>Id</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<tr ng-repeat="data in datas">
<td>{{data.dayname}}</td>
<td>{{data.date}}</td>
</tr>
</table>
</div>
</div>
单击此处加载数据
身份证件
名字
姓
{{data.dayname}
{{data.date}
使用json文件的正确相对路径。它应该能解决你的问题。这不是JSON文件。这是Javascript。请查找JSON语法!密钥必须用引号“”包装,并且不能在JSON文件中使用函数。-当地建造的是什么意思?你是在客户端、浏览器上构建的?如果文件已经在本地的某个地方,为什么需要使用$http进行远程调用?很抱歉,我使用了相对路径,但它仍然不起作用$http.get(“C:\xampp\htdocs\mycode\test\job.json”).success(函数(响应){$scope.big=response;})
@Michael:我对语法感到抱歉,本地的意思是我的所有文件都在一个文件夹中,这意味着javascript和json文件,我需要访问这些数据才能将其分配到$scope中。“它不工作”不是一个正确的问题描述。如果您需要支持,您必须提供详细的描述和一些正在运行的plunker或JSFIDLE示例。我正在使用的chrome浏览器在firefox和firefox等浏览器中可以正常工作。默认情况下,此web安全性将被禁用。所以你不必担心。它会工作得很好。这不是代码修复,您刚刚打开chrome浏览器禁用web安全。实际上问题是$http.get正在异步调用数据,因此在响应到来之前,下一步将在不接收数据的情况下执行,因此它给出了错误消息是否存在获取json数据的同步方法???$http({method:'get',url:'/someUrl'})。然后(函数successCallback(response){//当响应可用时,将异步调用此回调//,如果发生错误,将异步调用函数errorCallback(response){//或服务器返回带有错误状态的响应。});实际上,我必须从数据库中获取这些数据,我将以json格式接收这些数据。您使用的是什么数据库?实际上,问题是$http.get异步调用数据,因此在响应到来之前,下一步将在不接收数据的情况下执行,因此会出现错误。是否存在获取json数据的同步方法??