2017-02-07 1 views
1

안녕하세요, 저는 angularjs에 하나의 응용 프로그램을 프런트 엔드로, 웹 api2를 백엔드로 개발하고 있습니다. 나는 각도와 웹 API를 처음 사용합니다. angularjs에서 로그인 페이지를 완료했습니다. 로그인이 성공하자마자 Views/Home/index.cshtml에있는 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을 사용하려하지만이 작동하지 않는 것입니다. 여기 좀 도와 줄 수 있을까요? 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

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

또한 당신이 시도 $state.go(url)

를 사용할 수있는 컨트롤러

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

봐. – DarkSkull

답변

1

이보십시오,이

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

감사합니다. control.js의 success 호출로 돌아 오지 않기 때문에 service.js에서 문제가 발견되었습니다. –

+0

service.js 파일에 누락 된 부분이 있는지 알 수 있습니까? –

+0

반송 응답을 보내 주면 – Sajeetharan

2

에 $ 창을 주입

+0

나는 OP가 어떤 라우팅을 사용한다고 생각하지 않는다. – Sajeetharan

+0

$ state는 정의되지 않았다. 나는이 에러 메시지를 받는다. –

+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'); 
    }); 
관련 문제