2017-02-07 6 views
1

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

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

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, но он не работает. Могу я получить помощь здесь? Любая помощь будет оценена по достоинству. Спасибо.

+0

Посмотрите на мой ответ. – DarkSkull

ответ

1

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

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

также инъекционные $ окно в контроллер

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) { 
      }) 
     }; 
}); 
+0

Спасибо. Я нашел проблему в service.js, потому что controll не возвращается к успешному вызову в controller.js. –

+0

Могу ли я узнать что-то, что мне не хватает в файле service.js? –

+0

вы должны вернуться из службы – Sajeetharan

2

Вы можете использовать $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) { 
      }) 
     }; 

});

+0

Я не думаю, что OP использует любую маршрутизацию – Sajeetharan

+0

$ state 'undefined Я получаю это сообщение об ошибке. –

+0

сейчас попробуйте, я забыл ввести '$ state' в контроллер –

0

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

window.location = url; 

в этом:

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

Вы должны перенаправлять правильно.

0

Вам нужно использовать $ 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'); 
    });