当登录成功时,我尝试重定向其他页面,在这种情况下,我在成功时使用了演示页面index.html。但是$ location.path没有重定向到新页面。我得到错误为TypeError:无法读取undefined的属性'path'。
module LoginModule {
export class LoginController {
username: string;
password: string;
static $inject = ['$http','$location'];
constructor(private $http : ng.IHttpService,private $location : ng.ILocationService){
}
login() {
this.$http({
method: 'POST',
url: 'https://localhost:8061/nada/login',
data : $.param({'username' : this.username, 'password' : this.password}),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}}).success(function(data) {
this.$location.path("/success");
//alert("sucess");
}).error(function(error) {
JSON.parse(error);
alert('No access available.');
// console.log(result);
});
}
}
angular.module('loginModule', ['ngRoute']).controller('LoginController', LoginModule.LoginController).config(['$routeProvider' ,function($routeProvider) {
$routeProvider.
when("/", {
templateUrl: 'html/login.html'
})
.when("/success", {
templateUrl: 'html/index.html',
controller: 'clientsController'
})
.otherwise({redirectTo: '/'});
}]);
}
我的代码中是否缺少某些内容。此外,我已将路由部分放在.config方法中,我可以将其移动到类中,因为我尝试在typescript中执行此操作,如果是这样,我如何在mycontroller中访问它。
我有登录页面,接受用户名和密码。并打个电话
答案 0 :(得分:3)
您需要在成功处理程序中保留词法范围,以便通过使用胖箭头函数将this
用作您班级的上下文......
}}).success(function(data) {
this.$location.path("/success");
需要:
}}).success((data) => {
this.$location.path("/success");
胖箭头功能是你的朋友 =>