3

所以我是 Angular 的新手,我下载了 Angular.JS 的 Yeoman 脚手架来稍微摆弄一下。我正在尝试使用此库实现 Facebook 登录:https ://github.com/pc035860/angular-easyfb 没有加载任何内容,控制台也没有反映任何内容。我几乎可以肯定这个问题与在控制器上注入 facebook 依赖项有关。我的 main.js 文件中有这个:

angular.module('circeApp', ['ezfb'])
  .controller('MainCtrl', function($scope, ezfb, $window, $location) {
  updateLoginStatus(updateApiMe);

  $scope.login = function(){
  ezfb.login(function(response){
      if(response.authResponse){
      updateLoginStatus(updateApiMe);
      }
  }, {scope: 'email,user_likes'});
  };

  $scope.logout = function(){
  ezfb.logout(function(){
      updateLoginStatus(updateApiMe);
  });
  };

  function updateLoginStatus(more){
  ezfb.getLoginStatus(function(response){
      $scope.loginStatus = response;

      (more || anular.noop)();
  });
  }

  function updateApiMe(){
  ezfb.api('/me', function(response){
      $scope.apiMe = response;
  });
  }
});

这在我的 app.js 文件中:

'use strict';

angular.module('circeApp', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'ezfb'
])
  .config(function ($routeProvider, $locationProvider, $httpProvider, ezfbProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'partials/main',
        controller: 'MainCtrl'
      })
      .when('/login', {
        templateUrl: 'partials/login',
        controller: 'LoginCtrl'
      })
      .when('/signup', {
        templateUrl: 'partials/signup',
        controller: 'SignupCtrl'
      })
      .when('/settings', {
        templateUrl: 'partials/settings',
        controller: 'SettingsCtrl',
        authenticate: true
      })
      .otherwise({
        redirectTo: '/'
      });

    $locationProvider.html5Mode(true);

    // Intercept 401s and redirect you to login
    $httpProvider.interceptors.push(['$q', '$location', function($q, $location) {
      return {
        'responseError': function(response) {
          if(response.status === 401) {
            $location.path('/login');
            return $q.reject(response);
          }
          else {
            return $q.reject(response);
          }
        }
      };
    }]);
  })
  .run(function ($rootScope, $location, Auth) {

    // Redirect to login if route requires auth and you're not logged in
    $rootScope.$on('$routeChangeStart', function (event, next) {

      if (next.authenticate && !Auth.isLoggedIn()) {
        $location.path('/login');
      }
    });

//Configure ezfb provider aqui
   ezfbProvider.setInitParams({
       appId: 'XXXXXXXXXXXX',
       status: true,
       cookie: true,
       xfbml: true
   });
  });

在此之前,页面呈现但控制台告诉我:“参数'MainCtrl'不是函数,未定义”。我修复了丢失的括号并确保 ezfb 包含在 angular.module 中。现在,我唯一得到的是一个空白页。

4

0 回答 0