加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入 – 将JS JS SDK注入AngularJS控制器

发布时间:2020-12-14 00:47:50 所属栏目:百科 来源:网络整理
导读:我正在为Angular创建一个Facebook服务,所以我可以更容易地测试需要使用Facebook JS SDK和Graph API的代码. 这是我到目前为止 app.factory('facebook',function() { return FB;});window.fbAsyncInit = function () { FB.init({ appId: 'SOME_APP_ID_HERE',//
我正在为Angular创建一个Facebook服务,所以我可以更容易地测试需要使用Facebook JS SDK和Graph API的代码.

这是我到目前为止

app.factory('facebook',function() {
    return FB;
});

window.fbAsyncInit = function () {
    FB.init({
        appId: 'SOME_APP_ID_HERE',// App ID
        status: true,// check login status
        cookie: true,// enable cookies to allow the server to access the session
        xfbml: true,// parse XFBML
        oauth: true
    });
};

// Load the SDK Asynchronously
(function (d) {
    var js,id = 'facebook-jssdk',ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) { return; }
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js,ref);
})(document);

现在,我知道实际的Facebook SDK部分正在运行…但在我的控制器中,引用始终为空.

在我的控制器我只是有这样的东西:

function FooCtrl($scope,facebook) {
    facebook.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            var uid = response.authResponse.userID;
            var accessToken = response.authResponse.accessToken;
            // do something
        } else if (response.status === 'not_authorized') {
            // the user is logged in to Facebook,// but has not authenticated your app
        } else {
            // the user isn't logged in to Facebook.
        }
    });
}

然后,角色抓住它找不到一个FacebookProvider.有什么想法可以如何实现?

用下面的数组括号括起你的工厂功能
app.factory('facebook',[function() {
    return FB;
}]);

API文档不够清楚.具有数组括号的点是可以指定依赖关系.将使用AUTO.$injection注入您的服务创建.但是由于你没有依赖关系,所以它会跳过这个任务:)

无论如何,如果你需要依赖,你可以这样请求他们

app.factory('facebook',["$log",function($someCrazyLoggerService){
    $someCrazyLoggerService.log("I'm Auto Injected crazy Logger");
}]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读