0

所以我有一个带有提交按钮的登录页面,只要用户名和密码正确,就会加载一个新页面。这工作正常,但在下一页我想要一个向导弹出。

我正在使用Angular + VMWare Clarity

问题是,如果我输入:

<button [disabled]="loading" class="btn btn-primary" (click)="wizard.open()">
    Login
</button>

这将重定向到向导而不先进行身份验证。因此,如果用户名和密码不正确,则无关紧要。

您知道正确提交表单后弹出向导的其他方法吗?或者,如果我可以在表单提交后以某种方式弹出向导而不需要按钮功能?

4

1 回答 1

2

因此,您的(click)="wizard.open()"事件处理程序会在单击按钮时触发,而不是在表单响应后触发。这不是 Clarity 特有的,只是 JavaScript 中事件的逻辑顺序。点击几乎总是在收到响应之前触发,因此您希望在收到响应时处理打开向导。

有两种基本方法。1) 在输入绑定中设置打开状态或 2) 获取向导组件并以编程方式调用打开方法。

  1. 您的向导应该将[(clrWizardOpen)]绑定设置为一个值,例如<clr-wizard [(clrWizardOpen)]="wizardState">. 当您处理您的响应时,您可以设置this.wizardState = true触发向导打开。

  2. 在您的控制器中,您可以使用在您@ViewChild(ClrWizard) wizard: ClrWizard;的控制器上设置一个引用该向导的属性。然后在您的响应处理程序中,您可以this.wizard.open()打开它。

于 2018-02-12T17:42:35.760 回答