我对Web开发和AngularJS都很陌生。我正在尝试编写一个网页,它将根据我服务器上的JSon文件自动更新其信息。我可以得到json数据,但我似乎无法解析进来的数据。我验证了json数据只是为了确保我正确地写它,但每当我在网站上显示它只是显示为单个字符串。我无法访问个人成员。我的工厂和控制器在下面。任何帮助将不胜感激!!
var MyController = function($scope, $log, MyFactory) {
$scope.notes =[];
function init() {
MyFactory.getNotes()
.success(function(notes){
$scope.notes = JSON.parse(notes);
})
.error(function(data, status, headers, config) {
$log.log(data.error + ' ' + status);
});
}
init();
angular.module('MyApp')
.controller('MyController', MyController);
};
工厂:
var MyFactory = function($http) {
var factory = {};
factory.getNotes = function() {
return $http.get('/ci/data.json');
};
return factory;
};
angular.module('MyApp').factory('MyFactory',
MyFactory);
我承认代码和问题很粗糙,但我刚刚开始。任何有关建筑和风格的额外帮助也将受到赞赏!提前谢谢!
答案 0 :(得分:6)
您不需要将响应解析为json。如果源文件为您提供有效的json,则angular知道它的json。
在您的控制器中,尝试console.log($scope.notes)
。如果使用谷歌浏览器,您会在控制台中打印出json
结果,并且您知道factory
正在运行。
使用角度forEach
来迭代结果以对其执行某些操作。
angular.forEach($scope.notes, function(note) {
console.log(note);
});
答案 1 :(得分:0)
您可以使用angular.fromJson(jsondata)
来解析http结果。
以前我从http响应中获取了无效的json数据,json数据中有一些"\
字符,所以我使用它解析它对我有用,它从我的json数据中删除了所有这些无效字符。
答案 2 :(得分:0)
对于那些可能仍然需要这个的人,Suresh的答案是正确的,但代码是错误的(至少对于Angular 1而言)
因此,在尝试解析数据时,例如:
{"1":{"id":"1","owner":"1","name":"Server","description":"This is my test server.","version":"1.11","type":"0","ip":"test.com","port":"25565"},"2":{"id":"2","owner":"1","name":"Test Server","description":"This is my test server.","version":"1.0","type":"2","ip":"test.com","port":"25565"}
我使用了以下GET请求:
.controller('serversController', function($scope, $http){
$http.get("/dashboard/api/?action=getServers&key=")
.then(function(response){
$scope.servers = response.data;
});
});
以及以下HTML:
<div ng-repeat="server in servers">
<p>{{server.id}}</p>
<p>{{server.name}}</p>
<p>{{server.version}}</p>
</div>