如何使用nebular身份验证/登录库使用login()导航到首页?

时间:2019-03-28 09:01:37

标签: angular nebular

我新创建了安装了星云库的Angular项目。我想创建3个页面。(登录,注册和主页)。我已经分别借助内置的NbLoginComponent和NbRegisterComponent创建了登录和注册页面。现在,我想单击NbLoginComponent的登录按钮后导航到HomePage。用户成功登录后(基本上我想使用此login()导航到主页)。那么在哪里需要实现这种功能?

现在,我无法执行与NbLoginComponent相同的页面。

Simillarly,对于NbRegisterComponent, 如果我使用,则在用户成功注册后,我想在登录成功后->导航到登录页面->主页。

那么我需要在哪里使用星云库实现此类功能?

我已经有了与nebular / auth相关的页面,例如登录,注册,注销等(带有最新的Angular 7和最新的nebular库)。

仅NbLoginComponent和NbRegisterComponent代码

预期:成功登录后,使用NbLoginComponent的login()需要导航到主页。并且成功注册后,使用NbRegisterComponent的register()需要导航到loginPage。

实际:在上述两种情况下,它都停留在同一页面中(意味着成功登录后单击登录按钮,它将停留在相同的登录页面中,类似地进行注册。)

1 个答案:

答案 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中重定向到登录页面。