如何获取angularjs中本地的json文件

如何获取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”, “小时”:“

您好,我正在使用angularjs,希望从本地构建的json文件中获取数据。我尝试使用$http,但没有成功。你能告诉我其他的方法吗

$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数据的同步方法??