私は、次のコードを使用して$scope
を使用しようとしています:
var scopes = "https://www.googleapis.com/auth/contacts.readonly";
setTimeout(authorize(), 20);
function authorize() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthorization);
}
invitePeersController.gmailContacts = [];
function handleAuthorization(authorizationResult) {
if (authorizationResult && !authorizationResult.error) {
$.get("https://www.google.com/m8/feeds/contacts/default/thin?alt=json&access_token=" + authorizationResult.access_token + "&max-results=50000&v=3.0",
function(response){
//process the response here
console.log(response);
var jsonChildData = JSON.parse(JSON.stringify(response.feed.entry));
for(var i=0; i<jsonChildData.length;i++){
try {
var item = {};
var name = JSON.stringify(jsonChildData[i].title.$t);
var email = JSON.stringify(jsonChildData[i].gd$email[0].address);
if(name.substring(1, name.length-1) && email.substring(1, email.length-1)){
item ["name"] = name.substring(1, name.length-1);
item ["email"] = email.substring(1, email.length-1);
item ["id"] = email.substring(1, email.length-1).replace(/[^a-zA-Z ]/g, "");
invitePeersController.gmailContacts.push(item);
}
}
catch(err) {
// console.log("Something went terribly wrong while trying to fetch Gmail Contacts Data");
}
}
InvitePeersService.setGmailContactsData(invitePeersController.gmailContacts);
console.log(invitePeersController.gmailContacts);
$scope.$apply(function(){
$scope.gmailData = invitePeersController.gmailContacts;
console.log($scope.gmailData);
})
});
}
}
}
私は$scope
で応答を得ることができますが、別の場所にデータを取得することはできません。
$scope
でこの値を使用するにはどうすればよいですか?
this questionに従いましたが、$scope.$apply()
を適用しようとしましたが、機能しません。 invitePeersController.gmailContacts
が初期化されるように、
function(response){
ブロックに
InvitePeersService.setGmailContactsData(invitePeersController.gmailContacts);
console.log(invitePeersController.gmailContacts);
$scope.$apply(function() {
$scope.gmailData = invitePeersController.gmailContacts;
console.log($scope.gmailData);
})
- 応答がコールバック関数に来るよう:
あなたは 'はconsole.log(invitePeersController.gmailContacts)を行う;'、それはデータを記録していますか? – anoop
@anoopはい、そうです。 –
コンソールにエラーがありますか?あなたは '$ scope'コントローラを注入していますか?これは' service'ですか?また、提案として '$ http.get()'を使うべきです – anoop