Как перенаправить на другую страницу после успешного входа в angularjs?

Привет я разрабатываю одно приложение в Angularjs в качестве внешнего интерфейса и веб-API2 в качестве внутреннего интерфейса. Я новичок в угловых и веб-API. Я заполнил страницу входа в angularjs. Как только мой вход в систему будет успешным, я захочу перейти на страницу Index.cshtml, расположенную в Views/Home/index.cshtml. Я стараюсь, как показано ниже.

Это мой код контроллера.

app.controller('Login', function ($scope, LoginService) {
    $scope.Login = function () {
        var sub = {
            User_Name: $scope.User_Name,
            User_Password: $scope.User_Password
        };
        var checkData = LoginService.Login(sub);
        checkData.then(function (data) {
            //want redirection
            var url = '/Home/Index/';
            window.location = url;
            }, function (error) {
            })
        };
});

Это мой module.js

var app;
(function () {
    app = angular.module("Login", []);
})();

service.js

app.service("LoginService", function ($http) {
    this.Login = function (sub) {
        var credentials = { User_Name: sub.User_Name, User_Password: sub.User_Password };
           $http.post('api/NCT_UsersLogin/', credentials).success(function (response) {  });
    }
});

Я пытаюсь использовать window.location, но он не работает. Могу ли я получить помощь здесь? Любая помощь будет оценена. Спасибо.

4 ответа

Решение

Попробуй это,

 $window.location.href = '/Home/index.html';

также введите $window в ваш контроллер

app.controller('Login', function ($scope, LoginService,$window) {
    $scope.Login = function () {
        var sub = {
            User_Name: $scope.User_Name,
            User_Password: $scope.User_Password
        };
        var checkData = LoginService.Login(sub);
        checkData.then(function (data) {
            //want redirection        
              $window.location.href = '/Home/index.html';
            }, function (error) {
            })
        };
});

Ты можешь использовать $state.go(url)

Попробуй это

app.controller('Login', function ($scope, LoginService, $state) {
    $scope.Login = function () {
        var sub = {
            User_Name: $scope.User_Name,
            User_Password: $scope.User_Password
        };
        var checkData = LoginService.Login(sub);
        checkData.then(function (data) {
            //want redirection
            var url = '/Home/Index/';
            $state.go(url);
            }, function (error) {
            })
        };

});

Попробуйте изменить это:

window.location = url;

в этом:

window.open("http://www.example.com","_self");

You should redirect correctly.

Вам нужно использовать $state.go('/home');

Например:

     $http.post('api/NCT_UsersLogin/', credentials).success(function (response) { 
      //if your response status is success then redirect to another page using 
        $state.go('/home');
     });
Другие вопросы по тегам