gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:21 25 4
gpt4 key购买 nike

下面的代码描述了我的 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);
});
}

关于angularjs - 我想创建一个路由,以在用户登录时自动将用户重定向到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com