Angularjs 我想创建一个路由,在登录时自动将用户重定向到主页

Angularjs 我想创建一个路由,在登录时自动将用户重定向到主页,angularjs,node.js,Angularjs,Node.js,下面的代码描述了我的app.js文件 (function () { 'use strict'; angular .module('app', ['ngRoute', 'ngCookies']) .config(config) .run(run); config.$inject = ['$routeProvider', '$locationProvider']; function config($routeProvider, $locationProvider) {

下面的代码描述了我的app.js文件

(function () {
'use strict';

angular
    .module('app', ['ngRoute', 'ngCookies'])
    .config(config)
    .run(run);

config.$inject = ['$routeProvider', '$locationProvider'];
function config($routeProvider, $locationProvider) {
    $routeProvider
        .when('/', {
            controller: 'HomeController',
            templateUrl: 'home/home.view.html',
            controllerAs: 'vm'
        })

        .when('/users/login', {
            controller: 'LoginController',
            templateUrl: 'login/login.view.html',
            controllerAs: 'vm'
        })

        .when('/register', {
            controller: 'RegisterController',
            templateUrl: 'register/register.view.html',
            controllerAs: 'vm'
        })


        .otherwise({ redirectTo: '/users/login' });
}

})(); 
下面的一个描述了我的login controller.js文件:我编写了这个路由,用于将注册用户登录到数据库,并在用户名和密码正确后创建令牌。我现在想要的是创建一个自动路由,一旦密码和用户名正确,就会将用户重定向到主页

(function () {
'use strict';

angular
    .module('app')
    .service('Users1', function($http) {
        this.logUser = function(user) {
            return $http.post("/users/login", user).
                then(function(response) {
                    return response;
                }, function(response) {
                    alert("Error logging in user.");
                });
        }
    })
    // .controller('RegisterController', RegisterController);
    .controller("LoginController", function($scope, $location, Users1) {
        $scope.back = function() {
            $location.path("/users/login");
        }

        $scope.login = function(user) {
            Users1.logUser(user).then(function(doc) {
                var userUrl = "/" + doc.data.id;
                $location.path(userUrl);
            }, function(response) {
                alert(response);
            });
        }
    })
})();
以下是登录控制器文件的html文件:

<div class="col-md-6 col-md-offset-3">
<h2>Login</h2>
<form name="form" role="form">
    <div class="form-group" ng-class="{ 'has-error': form.username.$dirty && form.username.$error.required }">
        <label for="username">Username</label>
        <input type="text" name="username" id="username" class="form-control" ng-model="user.username" required />
        <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span>
    </div>
    <div class="form-group" ng-class="{ 'has-error': form.password.$dirty && form.password.$error.required }">
        <label for="password">Password</label>
        <input type="password" name="password" id="password" class="form-control" ng-model="user.password" required />
        <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
    </div>
    <div class="form-actions">
        <button type="submit" ng-disabled="form.$invalid || vm.dataLoading" class="btn btn-primary" ng-click="login(user)">Login</button>

        <a href="#/register" class="btn btn-link">Register</a>
    </div>
</form>

登录
用户名
用户名是必需的
密码
密码是必需的
登录

您可以使用run方法在登录时将用户重定向到主页。 你可以检查,即使有任何时候,路线改变和重定向他到正确的地方

$scope.$on('$routeChangeStart', function (event, next, current) {
  //add your logic here. if user next contains next route. 
});
如果您只想将用户重定向到主页。如果您想要用户ID作为urlParams,那么您应该使用这个

.when('/:id', {
        controller: 'HomeController',
        templateUrl: 'home/home.view.html',
        controllerAs: 'vm'
    })
和控制器

$scope.login = function(user) {
        Users1.logUser(user).then(function(doc) {
            var userUrl = "/" + doc.data.id;
            $location.path(userUrl);
        }, function(response) {
            alert(response);
        });
    }
$scope.login = function(user) {
        Users1.logUser(user).then(function(doc) {
            var userUrl = "/" + doc.data.id;
            $location.path(userUrl);
        }, function(response) {
            alert(response);
        });
    }