2017-02-07 46 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'); 
    }); 
相关问题