错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法
Posted
技术标签:
【中文标题】错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法【英文标题】:Error: Object doesn't support property or method in angular js code for fb login 【发布时间】:2017-06-28 06:52:34 【问题描述】:我正在尝试为我的 Angular JS 网站集成 facebook 登录。我得到一个弹出窗口,甚至我得到一些数据,比如我的 id 和用户名。我在这里面临的问题是,当我尝试重定向页面或将此数据发送到控制器中的 handleUser 对象时,它不允许我从该 fbLOgin() 函数块调用任何函数。 它不允许我从 dat 块调用任何函数...请帮助我。
FBLogin()
console.log("came into fb ");
FB.init(
appId : 'my_id',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.9'
// js.src = "//connect.facebook.net/en_US/sdk.js";
);
FB.login(function(response)
if (response.authResponse)
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response)
// console.log('Good to see you, ' + response.name + '.');
console.log(response.name);
let user =
"userAccountId":response.name,
"userRole": "CUSTOMER",
"lastOtpRequest": 0,
"fullName": "myname",
"mobileNo": "1234567890",
"emailId": "mymail@gmail.com",
"like": false,
"token": 0,
"loyal": false,
"guest": false,
"enabled": true,
"newCustomer": true
);
else
console.log('User cancelled login or did not fully authorize.');
);
【问题讨论】:
【参考方案1】:实际上我的 gmail 帐户也有同样的问题。所以我在这里发现的是,我们不能从该承诺中调用当前对象。所以我从那个承诺创建了另一个函数,我正在调用那个函数。代码如下..
googleLogin()
var google = window.gapi;
var currentObject = this;
function authenticateUser(data)
var user = ;
user.emailId = data.getEmail();
user.fullName = data.getName();
user.socialId = data.getId();
user.username = data.getGivenName();
currentObject.handleUser(user);
google.load('auth2', function ()
google.auth2.init(
client_id: ''
).then(function (auth2)
if (auth2.isSignedIn.get())
var googleUser = auth2.currentUser.get();
authenticateUser(googleUser.getBasicProfile());
else
auth2.signIn();
auth2.isSignedIn.listen(onSignIn);
function onSignIn(googleUser)
console.log(googleUser);
if (googleUser)
var googleUser = auth2.currentUser.get();
authenticateUser(googleUser.getBasicProfile());
);
);
【讨论】:
以上是关于错误:对象不支持 Angular js 代码中用于 fb 登录的属性或方法的主要内容,如果未能解决你的问题,请参考以下文章
Angular.js xhr.open() 抛出“拒绝访问”错误
当我们只有一个要接收的对象时如何在Angular 8中获取数据
js中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?