我正在使用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
中删除,那么我的模板工作正常,但不是谷歌加登录按钮。
有人有任何想法吗?
答案 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”)。