2017-02-07 86 views
1

您好我正在開發一個應用程序在angularjs作爲前端和web api2作爲後端。我對angular和web 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的嘗試,但它無法正常工作。我可以在這裏得到一些幫助嗎?任何幫助,將不勝感激。謝謝。

+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

$狀態'是未定義我收到此錯誤消息。 –

+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'); 
    }); 
相關問題