Javascript 安格拉斯赢得';无法从外部json文件读取
嗨,我正在尝试让我的angularJs站点从位于js/data.JSON中的外部JSON文件读取。只有当json文件在控制器脚本中时,它才起作用……但是当我将其删除到data.json时……它不会读取它吗?当我在搜索栏上输入任何东西时…什么都不会出现。仅当我在控制器中包含脚本时,它才起作用,如:Javascript 安格拉斯赢得';无法从外部json文件读取,javascript,json,angularjs,Javascript,Json,Angularjs,嗨,我正在尝试让我的angularJs站点从位于js/data.JSON中的外部JSON文件读取。只有当json文件在控制器脚本中时,它才起作用……但是当我将其删除到data.json时……它不会读取它吗?当我在搜索栏上输入任何东西时…什么都不会出现。仅当我在控制器中包含脚本时,它才起作用,如: personApp.controller('PersonListCtrl', function ($scope, $http) { $http.get('data/persons.json').
personApp.controller('PersonListCtrl', function ($scope, $http) {
$http.get('data/persons.json').success(function (data) {
$scope.persons = data;
});
$scope.persons = [{
"name": "Mike Doe"
}, {
"name": "Jhon Doe"
}, {
"name": "Sam Doe"
}, {
"name": "Sam Doe"
}, ]
});
为了简单起见,我只希望这两个文件是分开的。谢谢
我的控制器代码中有错误吗
谢谢
<body ng-app="personApp">
<div class="container">
<header></header>
<div ng-controller="PersonListCtrl">
<div class="bar">Search:
<input ng-model="query">
</div>
<ul class="" ng-show="query">
<li ng-repeat="person in persons | filter:query">{{person.name}}</li>
</ul>
</div>
</div>
</body>
这是位于js/data.json中的外部json文件
[{
"name": "Mike Doe"
}, {
"name": "Jhon Doe"
}, {
"name": "Sam Doe"
}, {
"name": "Sam Doe"
}, ]
如果我使用以下命令,JSON将不会解析:
personApp.controller('PersonListCtrl', function ($scope, $http) {
$http.get('data/persons.json').success(function (data) {
$scope.persons = JSON.parse(data);
});
});
我在浏览器控制台上不断遇到一个错误:我认为这与控制器中的JSON解析有关
SyntaxError: Unexpected token o
at Object.parse (native)
at http://172.31.1.17/js/controllers/controllers.js:229:31
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:80:486
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:111:425
at k.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:125:305)
at k.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:122:398)
at k.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:126:58)
at m (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:81:275)
at N (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:85:364)
at XMLHttpRequest.w.onload (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js:86:394)
我认为在将数据分配给$scope.persons之前,需要对其进行解析 将控制器代码更改为
personApp.controller('PersonListCtrl', function ($scope, $http) {
$http.get('data/persons.json').success(function (data) {
$scope.persons = JSON.parse(data);
});
});
您的json数据中有错误
[{
“姓名”:“迈克·多伊”
}, {
“名称”:“Jhon Doe”
}, {
“姓名”:“山姆·多伊”
}, {
“姓名”:“山姆·多伊”
}]; // 我认为您需要对它进行两次解析,$http.get命令已经解析了,因此不需要使用JSON.parse(数据);再次
这将解决您的令牌O错误谢谢。我根据您的建议进行了更改,但控制台中出现错误?表示:$scope.persons=JSON.parse(data);}有错误;SyntaxError:Object.parse(本机)处出现意外标记o,只需删除数组中多余的分号。我已删除数组中的分号。仍然有错误。console.log(数据)是否返回字符串或对象?谢谢,我已经完成了上述操作,但仍然有错误。谢谢,这是一个很好的站点。看来我的JSON文件还可以。我认为是控制器造成了问题/
personApp.controller('PersonListCtrl', function ($scope, $http) {
$http.get('data/persons.json').success(function (data) {
$scope.persons = JSON.parse(data);
});
});
[{
"name": "Mike Doe"
}, {
"name": "Jhon Doe"
}, {
"name": "Sam Doe"
}, {
"name": "Sam Doe"
}]; // <-- REMOVE SEMICOLON