नीचे दिया गया कोड मेरी 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' });
}

})(); 

नीचे दिया गया मेरा लॉगिन कंट्रोलर.जेएस फ़ाइल का वर्णन करता है: मैंने इस रूट को पंजीकृत उपयोगकर्ताओं को डेटाबेस में लॉग इन करने और उपयोगकर्ता नाम और पासवर्ड सही होने के बाद टोकन बनाने के लिए लिखा था। मैं अब एक ऑटो रूट बनाना चाहता हूं जो पासवर्ड और उपयोगकर्ता नाम सही होने पर उपयोगकर्ताओं को होम पेज पर रीडायरेक्ट कर देगा।

(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>
1
Israel Z. Kollie 21 अगस्त 2016, 21:35

2 जवाब

सबसे बढ़िया उत्तर
$scope.login = function(user) {
        Users1.logUser(user).then(function(
            $location.path("/");
        }, function(response) {
            alert(response);
        });
    }

यदि आप उपयोगकर्ता को होम पेज पर रीडायरेक्ट करना चाहते हैं। और यदि आप उपयोगकर्ता आईडी को 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);
        });
    }
1
Biswajit Panday 21 अगस्त 2016, 21:48

आप लैंडिंग पर उपयोगकर्ता को घर पर पुनर्निर्देशित करने के लिए रन विधि का उपयोग कर सकते हैं। आप जाँच कर सकते हैं कि जब कभी भी मार्ग परिवर्तन होता है और उसे सही जगह पर पुनर्निर्देशित किया जाता है।

$scope.$on('$routeChangeStart', function (event, next, current) {
  //add your logic here. if user next contains next route. 
});
1
Shankar Morwal 21 अगस्त 2016, 21:45