Angularjs $state.go-in工厂被识别但被忽略

Angularjs $state.go-in工厂被识别但被忽略,angularjs,angular-ui-router,Angularjs,Angular Ui Router,因此,我正在设置一个服务,该服务将检查当前用户是否已登录,如果未登录,则将其发送到我的登录状态。我无法理解为什么这不起作用。该状态正在被识别,因为如果我故意尝试无效状态,她会抛出一个错误 目前,我得到的是$log结果,而不是状态更改 (function() { 'use strict'; angular .module('user-module', []) .factory('UserService', ['$state', '$log', UserService]); /*

因此,我正在设置一个服务,该服务将检查当前用户是否已登录,如果未登录,则将其发送到我的登录状态。我无法理解为什么这不起作用。该状态正在被识别,因为如果我故意尝试无效状态,她会抛出一个错误

目前,我得到的是$log结果,而不是状态更改

(function() {
'use strict';

angular
    .module('user-module', [])
    .factory('UserService', ['$state', '$log', UserService]);

/* @ngInject */
function UserService($state, $log) {

    return {
        login: login
    };

    //////////////////

    function login() {
        $log.info('Login fired...');
        $state.go('authentication.login');
        $log.info('Meh...');
    }
}
})();

没有抛出其他错误。你知道为什么这会被忽略吗?

你不需要
@ngInject
,你正在做DI注释,手动包装你的代码$state。进入$timeout。那就行了。