下面的代码描述了我的 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' });
}
})();
下面描述了我的登录controller.js 文件:我编写了此路由,用于将注册用户登录到数据库并在用户名和密码正确后创建 token 。我现在想要的是创建一个自动路由,一旦密码和用户名正确,该路由会将用户重定向到主页。
(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);
});
}
})
})();
下面是登录 Controller 文件的 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>
$scope.login = function(user) {
Users1.logUser(user).then(function(
$location.path("/");
}, function(response) {
alert(response);
});
}
如果您只想将用户重定向到主页。如果你想要 userid 作为 urlParams 那么你应该使用这个
.when('/:id', {
controller: 'HomeController',
templateUrl: 'home/home.view.html',
controllerAs: 'vm'
})
和 Controller
$scope.login = function(user) {
Users1.logUser(user).then(function(doc) {
var userUrl = "/" + doc.data.id;
$location.path(userUrl);
}, function(response) {
alert(response);
});
}
我是一名优秀的程序员,十分优秀!