谷歌加登录句柄结果
GooglePlus login handle result
在我的聚合物页面上,我尝试登录到我的google-plus页面并检索我的名字和封面照片网址。为此,我使用了一个 google-signin
元素,该元素在登录完成后运行以下函数:
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);
});
});
}
直到"数据加载"一切正常,控制台也从谷歌加打印出整个结果对象。但是我无法执行函数(this.myFunction
)或从那里的聚合物访问数据。如何将来自 gapi-request 的结果数据存储到我的聚合物变量中???
谢谢,麦芽
在 Ajax 结果中,this
上下文是不同的。您需要在 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-loader
(http://googlewebcomponents.github.io/google-apis/components/google-apis/#google-api-loader)的google-api获取数据。除了google-signin
元素之外,我还以以下方式使用该元素:
<google-api-loader id="plus" name="plus" version="v1"
on-google-api-load="{{displayProfile}}">
</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
访问数据。这是另一个例子:https://github.com/Scarygami/google-signin-samples/blob/master/elements/google-signin-status.html
- 链接上的IE10 jquery句柄单击事件不起作用
- 句柄未呈现
- 当页面居中时,带有inputfield的jQuery ui滑块句柄不起作用
- Node.js REST与MySQL句柄重新连接
- Node.js正确的回调错误句柄
- jQuery UI滑块-防止多个句柄重叠
- AngularJS:自定义 404 拦截器句柄 - 带有 URL 的响应
- 从扩展的 javascript 中获取 Firefox 浏览器窗口句柄
- 识别纯文本句子中的推特句柄
- 我可以更改CSS中文本区域调整大小句柄的设计吗
- Javascript正则表达式句柄/
- 在窗体内部单击jQuery句柄按钮
- ES6 Promise.al()错误句柄-Is.settle()需要
- 语法错误jquery句柄json
- 带有两个句柄的 jQuery UI 滑块 - 获取初始数据
- 句柄中包含括号的问题处理属性
- 数组上的句柄设置为Backbone集合
- Asp.net Ajax事件句柄如何与DOM事件协同工作
- 谷歌加登录句柄结果
- 切换句柄多维数组.意外结果