ui.router无法使用google plus登录指令

时间:2015-11-29 18:01:16

标签: angularjs angularjs-directive angular-ui-router

我正在使用ui.router进行路由和google plus sign in directive

这是我的app.js

  angular
  .module('app', [
    'ngAria',
    'ngCookies',
    'ngMessages',
    'ngResource',
    'ngSanitize',
    'ngTouch',
    //'directive.g+signin'
  ]);

这是我的loginController

angular.module('app',['directive.g+signin'])
.controller('LoginController', function ($scope) {
        $scope.$on('event:google-plus-signin-success', function (event, authResult) {
          // User successfully authorized the G+ App!
          console.log(authResult);
          console.log('Signed in!');
        });
        $scope.$on('event:google-plus-signin-failure', function (event, authResult) {
          // User has not authorized the G+ App!
          console.log('Not signed into Google Plus.');
        });
});
directive.g+signin放入LoginController时,

Google plus登录按钮正常工作。然后不会从ui.router加载任何模板。

如果我将directive.g+signin添加到app.js并从LoginController中删除,那么我的模板工作正常,但不是谷歌加登录按钮。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

这样做

angular.module('app',['directive.g+signin'])

在注册loginController之前会覆盖您在app.js中创建的“app”模块。所以你有'app'模块,没有任何其他外部模块(g +指令除外)。这就是你的路由不起作用的原因(另一件事是我没有在app.js中看到包含ui.router模块 - 也许你创建'app'模块甚至超过两次?)

要获取现有模块,请使用angular.module('module_name')而不使用第二个参数。确保带有两个参数的angular.module仅针对一个模块名称调用一次(在您的情况下为“app”)。