好的,所以我要连接到freshdesk API以获取打开的门票。现在我想使用angular.js在我自己的Web应用程序中动态显示它。目前我收到了来自freshdesk API的json响应,但我无法将其存储到变量中,然后解析为我的角度控制器$ scope.tickets变量。
我怎么能这样做,有更好的方法吗?我对angular和jQuery很陌生,所以我对如何做到这一点持开放态度。
这是我的代码:
var jsonData;
function getData() {
$.support.cors = true;
var settings = {
"async" : true,
"crossDomain" : true,
"url" : "https://helpdesk.example.com/helpdesk/tickets.json",
"type" : "GET",
"headers" : { "authorization": basicAuth, "Content-Type" : "application/json"}
}
$.ajax(settings).done(function (response) {
//alert(response);
console.log(response);
jsonData = response;
});
}
我试过jsonData = JSON.parse(response);但这不起作用,这是一个有效的json响应。
我的角度控制器:
app.controller('Ctrl', function ($scope, $http) {
$scope.tickets = jsonData;
});
答案 0 :(得分:0)
您不必解析json响应。例如,如果您的回答看起来像这样。
[
{"ticket_id":1,"desc":"some desc"},
{"ticket_id":2,"desc":"some issues"}
]
然后你可以直接用它作为
var tickets= response.data;
console.log(tickets[0].desc);
你可以直接设置范围变量$ scope.tickets。你也应该使用angular的http服务来进行http调用而不是ajax。
答案 1 :(得分:0)
app.controller('Ctrl', function ($scope, $http) {
$scope.tickets = [];
var _data = angular.fromJson(response.data);
$scope.tickets = _data;
});
试试这个我认为这可能有所帮助。