Express.js + Facebook
我遇到问题,试图让这个快速应用程序工作。 我想调用(response.status ==='connected')如果分支,在Facebook getLoginStatus函数内的函数。 代码如下:
(function(){ var app = angular.module('AppProva', ['ngResource']); app.controller('friendFetcherCtrl', ['$window', function($window){ this.getFriends = function(){ console.log('GETFRIENDS()'); }; this.login = function() { console.log('LOGIN()'); $window.fbAsyncInit = function() { FB.init({ appId: '****************', xfbml: true, version : 'v2.3' }); FB.getLoginStatus(function(response) { if (response.status === 'connected') { console.log('Logged in.'); this.getFriends(); /*Facebook graph query*/ } else { FB.login(function() { /* Do something */ }, { scope : 'user_friends, public_profile' }); } }); }; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); }; }]); })();
loginfunction由div内的ng-init指令调用。 当加载我的HTML页面时,我得到错误“TypeError:this.getFriends不是一个函数”。 也许问题是我调用this.getFriends()函数在$ window中定义。 我怎样才能使事情工作?
预先感谢Francesco
编辑:我想我知道问题是“这个”关键字,但我怎样才能使其工作没有?
这很简单。 在FB.getLoginStatus
里面, this
是指向别的东西。 解决方法:
(function(){ var app = angular.module('AppProva', ['ngResource']); app.controller('friendFetcherCtrl', ['$window', function($window){ this.getFriends = function(){ console.log('GETFRIENDS()'); }; var self = this; this.login = function() { console.log('LOGIN()'); $window.fbAsyncInit = function() { FB.init({ appId: '****************', xfbml: true, version : 'v2.3' }); FB.getLoginStatus(function(response) { if (response.status === 'connected') { console.log('Logged in.'); self.getFriends(); //self will point to this in app.controller's function /*Facebook graph query*/ } else { FB.login(function() { /* Do something */ }, { scope : 'user_friends, public_profile' }); } }); }; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); }; }]); })();
- npm通知创build了一个lockfile作为package-lock.json。 你应该提交这个文件
- CORS无法在Firefox中运行
- sequelize.js:未处理的拒绝SequelizeForeignKeyConstraintError
- React Routing工作在本地而不是Heroku
- 正确的模块化结构nodejs +表示API的应用程序
- 在configuration文件页面使用数据库中存储的名称显示用户
- 同时访问两个远程资源并将其输出到合并的响应中 – NodeJS
- 设置一个句柄帮助器,以快速返回每个请求的特定值
- 表单值更新使用Angular js,Node Js,express js和Mongo DB