在角度范围变量

时间:2016-07-18 09:46:31

标签: jquery angularjs json ajax api

好的,所以我要连接到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;
});

2 个答案:

答案 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;
});

试试这个我认为这可能有所帮助。