0

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

现在我无法做任何事情,它与 NbLoginComponent 保持在同一页面中。 

同样,对于 NbRegisterComponent,如果我使用<nb-register></nb-register>,一旦用户成功注册,我想导航到登录页面 ---> 成功登录后 --> 主页。

那么我需要在哪里使用 nebular 库来实现这样的功能呢?

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

仅 NbLoginComponent 和 NbRegisterComponent 代码

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

实际:在上述两种情况下,它都停留在同一个页面中(意味着一旦您在成功登录后单击登录按钮,它就会停留在同一个登录页面,同样用于注册。)。

4

1 回答 1

1

如果您按原样使用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 中重定向到登录页面。

于 2019-05-17T13:40:38.997 回答