2016-07-18 9 views
0

これで、チケットが開かれているかどうかを調べるためにfreshdesk APIに接続しています。今、私はこれを自分のWebアプリケーションでangular.jsを使って動的に表示したいと思っています。現時点では、freshmeat_users APIからjsonレスポンスを受け取っていますが、それを変数に格納して、角度コントローラ$ scope.tickets変数に解析することはできません。角度スコープ変数でajax json応答を使用する

これを行うにはどうすればよいですか?私は、角度と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(応答)を試してみました。しかし、これはうまくいかず、有効なjsonレスポンスです。

マイ角度コントローラ:

app.controller('Ctrl', function ($scope, $http) { 
    $scope.tickets = jsonData; 
}); 
+0

jsonを解析する必要はありません – madalinivascu

答えて

0

あなたはJSONレスポンスを解析する必要はありません。たとえば、あなたの応答がこのように見える場合です。

[ 
{"ticket_id":1,"desc":"some desc"}, 
{"ticket_id":2,"desc":"some issues"} 
] 

あなたが直接あなたがより直接スコープ変数$ scope.ticketsを設定することができます

var tickets= response.data; 
console.log(tickets[0].desc); 

として使用することができます。また、ajaxではなくhttpコールを行うために、angleのhttpサービスを使用する必要があります。

+0

はい代わりに角型httpコールを使用していますが、現在は完全に動作しています。今私の唯一の問題は、私たちの発券システムにサインインして、Googleにサインインしている人たちが、自分のコードでAPI側からそれらをどのように認可するのかということです。私は通常、基本的な認証機能を実行しますが、それはgoogleでサインインしている人にとってはうまくいきません。 – Jason

+0

クッキーとしてロギングした後にトークンを格納するか、localstorageに格納してから、各api呼び出しで送信します。承認ヘッダを追加するためのインターセプタを書くことができます – Sugam

+0

残念ながら私はまだたくさんのことを学んでいます。ユーザーにGoogleにログインさせ、freshdesk APIを使用するためのトークンを受け取り、後で他のリクエストを呼び出すときに使用するためにクッキーに保存する方法を教えてください。 – Jason

0
app.controller('Ctrl', function ($scope, $http) { 
    $scope.tickets = []; 
    var _data = angular.fromJson(response.data); 
     $scope.tickets = _data; 
}); 

これは役立つと思います。

関連する問題