如何正确地将 Facebook JavaScript SDK 注入 AngularJS 控制器?

2024-05-16

我是 AnuglarJS 的新手,并且已经用它构建了一个小型网络应用程序, 我想将 Facebook JavaScript SDK 与它一起使用,但使用最佳实践(依赖项注入控制器,以维护应用程序结构和可测试性)。

我找到了这个https://groups.google.com/forum/#!msg/angular/bAVx58yJyLE/Kz56Rw-cQREJ https://groups.google.com/forum/#!msg/angular/bAVx58yJyLE/Kz56Rw-cQREJ但对于这个框架的新手来说,这非常令人困惑(恕我直言,模块、服务和工厂没有得到很好的解释)。

那么,在 AngularJS 应用程序中使用 Facebook SDK 的正确方法是什么?


我实际上不得不这样做......我没有代码,而且它可能是专有的......但它本质上是这样的:

// create a simple factory:    
app.factory('facebook', ['$window', function($window) {

    //get FB from the global (window) variable.
    var FB = $window.FB;

    // gripe if it's not there.
    if(!FB) throw new Error('Facebook not loaded');

    //make sure FB is initialized.
    FB.init({
       appId : 'YOUR_APP_ID'
    });

    return {
        // a me function
        me: function(callback) {
            FB.api('/me', callback);
        }

        //TODO: Add any other functions you need here, login() for example.
    }
}]);

// then you can use it like so:
app.controller('SomeCtrl', function($scope, facebook) {

    //something to call on a click.
    $scope.testMe = function() {

       //call our service function.
       facebook.me(function(data) {
          $scope.facebookUser = data;

          //probably need to $apply() this when it returns.
          // since it's async.
          $scope.$apply();
       });
    };
});

如果其中有任何错误,请告诉我,我将查找我拥有的工作代码并看看我错过了什么。但应该就是这样了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何正确地将 Facebook JavaScript SDK 注入 AngularJS 控制器? 的相关文章

  • 单击元素外部时触发事件的指令

    我知道有很多问题都在问类似的事情 但没有人真正解决我的问题 我正在尝试构建一个指令 当鼠标单击当前元素外部时 该指令将执行表达式 为什么我需要这个功能 我正在构建一个应用程序 在这个应用程序中 有 3 个下拉菜单 5 个下拉列表 如选择的
  • 如何从 ng-repeat 获取选定的值

    这是我的代码 我通过 ng repeat 获取数据并显示它 如下面的代码所示 我想要的是 如果我单击其中任何一个名称 那么它应该用该名称提醒我 我怎样才能实现这个目标 var myfriend angular module myfriend
  • Angularjs 路由:无法读取未定义的属性“路径”

    我试图在控制器中的函数内部触发 angularJS 路由 但它返回 未捕获的类型错误 无法读取未定义的属性 路径 实在看不出我在哪里错过了 location 注入 猜猜这就是原因 var gameApp angular module gam
  • AngularJS 服务返回未定义

    我有以下服务 app services emailService http sce function http sce return getMessage function messageId callback http get api e
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

    我使用 routeParams 从 URI 中提取属性并为其设置本地变量 当我使用打字稿输入设置 route 参数的类型时 我无法再访问 route 参数 如何访问 routeParams 中的属性 class Controller con
  • $digest 之后推迟 angularjs 监视执行(引发 DOM 事件)

    我有一个触发 DOM 事件的手表 scope watch function return controller selected function selected if selected input trigger focus 问题是我有
  • 如何使用 AngularJS 输出 JSON 数组中的元素

    JSON 数组定义在作用域中 scope faq Question 1 Answer1 Question 2 Answer2 HTML div f div Output Question 1 Answer1 Question 2 Answe
  • JavaScript/Angular 1 - Promise.all 到 async-await

    我在两个变量中分配了对 Web 服务的两次调用referencesPromise and contactTypesPromise onInit 如果需要 我可以为此创建一个新方法 onInit const referencesPromise
  • angular-cli:Karma-Webpack 因“没有此类文件或目录”而失败

    我从Tour of Heroes使用标准 Angular systemjs 现在我正在使用angular client它在开发 生产模式下运行顺利 但我无法测试任何东西ng test 以下内容会被吐出 不仅适用于test ts但也为了pol
  • 不支持的媒体类型 ASP.NET Core Web API

    在前端 我使用 Angular 从表单收集一些数据并将其发送到我的服务器端控制器 如下图所示 我在控制器和服务上获取数据 scope newData 但是当它到达服务器时 我收到以下错误 不支持的媒体类型 并且我的 newData 为空 我
  • AngularJS - 链接模板后有什么方法可以调用 javascript 吗?

    我正在尝试使用 jQuery 插件 Plupload http www plupload com index php 与 AngularJS 我创建了一个指令 它将成为我的文件上传 小部件 该指令看起来像这样 链接函数中的代码是一个非常简化
  • JSESSIONID cookie 未存储

    我有一个用 Angular 编写的前端 在 localhost 3002 上运行 我有一个用 Spring boot 编写的后端 它在 localhost 8080 上运行 我添加了一个过滤器来处理 CORS 我在 SO 上找到并适应了我的
  • Node.js 问题 :: Angular 未定义 :: 找不到 Bower 包 :: Node gyp 和 Python

    Issue 在浏览器中生成并启动新的 jHipster API 后 我遇到了以下问题 未捕获的引用错误 角度未定义 Before我安装的最新一代 node js yo bower grunt cli 根据指导方针 https jhipste
  • 使用 momentjs 更改 Angular Material 中 md-datepicker 的格式

    Angular Material 引入了新的日期选择器组件here https material angularjs org HEAD demo material components datepicker 我希望该组件返回的日期采用以下格
  • AngularJS ng-grid - 动态更新列和结果

    我是 ng grid 的新手 我们如何动态更新网格内的列和结果 我创建了一个http plnkr co edit CwUVIzSKVNCMTgpOW87f p preview http plnkr co edit CwUVIzSKVNCMT
  • 服务中的 AngularJS 变量未在视图中更新?

    我花了几天时间把头撞在桌子上 阅读博客文章 以及围绕我的问题提出的问题 我尝试了下面代码的几种变体 但到目前为止没有一个有效 我将不胜感激任何帮助 服务内的 taskList 变量会更新 但控制器中的变量不会更新 控制器 angular m
  • 刷新页面时保留页面数据

    我是角度新手 我正在使用一项服务 该服务获取对象列表并将其显示在第一页上 然后根据单击的对象 我在下一页上设置选项卡标题 但是 当我刷新页面时 列表的范围丢失 并且选项卡标题引发异常 导致页面不显示信息 即使刷新第二页 是否有任何方法可以保
  • 如何向 DOM 添加支持 Angular 的元素?

    我想以编程方式添加一些支持 Angular 的 DOM 元素 实际上 我可能需要添加自定义组件 我该怎么做 这是一个简单的小提琴来演示这个问题 http jsfiddle net ZJSz4 2 http jsfiddle net ZJSz
  • Kendo Angular 多选设置选定值

    我将 Kendo 多重选择与 Angular Kendo 指令和远程数据源一起使用 我试图在应用程序启动时设置所选项目 但没有成功 谁能帮帮我吗 请参阅此处的代码 JS Bin http jsbin com OkukInIc 1 edit

随机推荐