Javascript GooglePlus登录句柄结果

Javascript GooglePlus登录句柄结果,javascript,polymer,Javascript,Polymer,在我的聚合物页面上,我尝试登录到我的google plus页面,检索我的姓名和封面照片url。 为此,我使用了一个googlesign元素,在登录完成时运行以下功能: loginSuccess: function(e){ console.log("Success!"); gapi.client.load('plus', 'v1', function() { var request = gapi.client.plus.people.get( {'userId' :

在我的聚合物页面上,我尝试登录到我的google plus页面,检索我的姓名和封面照片url。 为此,我使用了一个
googlesign
元素,在登录完成时运行以下功能:

loginSuccess: function(e){
    console.log("Success!");
    gapi.client.load('plus', 'v1', function() {
        var request = gapi.client.plus.people.get( {'userId' : 'me'} );
        request.execute(function(retr){
            console.log("Data Loaded");
            console.log(retr);
            this.myFunction(retr);
        });
    });
}
在“数据加载”的情况下,一切都很好,控制台也会从GooglePlus打印出整个结果对象。但是我无法执行函数(
this.myFunction
)或从那里访问数据。如何将gapi请求的结果数据存储到我的聚合物变量中


谢谢,Malte

在Ajax结果中,
这个
上下文是不同的。您需要在ajax请求之前或在函数访问变量之前设置变量,如下所示:

self: this,

loginSuccess: function(e){
    console.log("Success!");
    gapi.client.load('plus', 'v1', function() {
        var request = gapi.client.plus.people.get( {'userId' : 'me'} );
        request.execute(function(retr){
            console.log("Data Loaded");
            console.log(retr);
            self.myFunction(retr);
        });
    });
}

我刚刚发现,我选择了错误的方式来获取我的个人资料数据

有一个聚合元素可以从google api获取数据,名为
google api loader
()。除了
谷歌登录
元素之外,我还以以下方式使用该元素:


此处显示函数
displayProfile

    displayProfile: function(){
        if (this.signedIn && this.$.plus.api) {
            var request = this.$.plus.api.people.get({"userId": "me"});
            request.execute(function (resp) {
                this.userData = resp;
            }.bind(this));
        }
    }

它工作得很好,我可以通过
this.userData
访问数据。这里是另一个例子:

谢谢,但它不起作用。控制台显示:
Success!数据加载未捕获类型错误:未定义不是函数。。。有什么想法吗?你能发布更多的代码吗?例如,包含displayProfile函数的整个对象。