我新创建了安装了星云库的Angular项目。我想创建3个页面。(登录,注册和主页)。我已经分别借助内置的NbLoginComponent和NbRegisterComponent创建了登录和注册页面。现在,我想单击NbLoginComponent的登录按钮后导航到HomePage。用户成功登录后(基本上我想使用此login()导航到主页)。那么在哪里需要实现这种功能?
现在,我无法执行与NbLoginComponent相同的页面。
Simillarly,对于NbRegisterComponent, 如果我使用,则在用户成功注册后,我想在登录成功后->导航到登录页面->主页。
那么我需要在哪里使用星云库实现此类功能?
我已经有了与nebular / auth相关的页面,例如登录,注册,注销等(带有最新的Angular 7和最新的nebular库)。
仅NbLoginComponent和NbRegisterComponent代码
预期:成功登录后,使用NbLoginComponent的login()需要导航到主页。并且成功注册后,使用NbRegisterComponent的register()需要导航到loginPage。
实际:在上述两种情况下,它都停留在同一页面中(意味着成功登录后单击登录按钮,它将停留在相同的登录页面中,类似地进行注册。)
答案 0 :(得分:0)
如果按原样使用 NbLoginComponent.js 并在decorate函数中设计了页面,则建议您在login()方法中添加以下代码,如下所示-
NbLoginComponent.prototype.login = function () {
var _this = this;
this.errors = [];
this.messages = [];
this.submitted = true;
this.service.authenticate(this.strategy, this.user).subscribe(function (result) {
_this.submitted = false;
if (result.isSuccess()) {
_this.messages = result.getMessages();
_this.router.navigateByUrl("/homepageurl");
}
else {
_this.errors = result.getErrors();
}
_this.cd.detectChanges();
});
};
您将被重定向到主页。 同样,您可以添加
_this.router.navigateByUrl(“ / login”);
在RegisterComponent中重定向到登录页面。