因此,我有一个带有提交按钮的登录页面,只要用户名和密码正确就会加载新页面 . 这工作正常,但在下一页我想要一个向导弹出 .
我正在使用 Angular VMWare Clarity .
问题是,如果我把:
<button [disabled]="loading" class="btn btn-primary" (click)="wizard.open()">
Login
</button>
这会重定向到向导而不先进行身份验证 . 因此,如果用户名和密码不正确则无关紧要 .
表格提交正确后,您知道还有其他方法可以弹出向导吗?或者,如果我可以以某种方式使表单提交后向导弹出而不需要按钮功能吗?
1 回答
因此,单击按钮时会触发
(click)="wizard.open()"
事件处理程序,而不是在表单响应后触发 . 这不是Clarity特有的,只是JavaScript中事件的逻辑顺序 . 在收到响应之前,点击几乎总是会触发,因此您希望在收到响应时处理打开向导 .有两种基本方法 . 1)在输入绑定中设置打开状态或2)获取向导组件并以编程方式调用open方法 .
您的向导应将
[(clrWizardOpen)]
绑定设置为值,例如<clr-wizard [(clrWizardOpen)]="wizardState">
. 处理响应时,可以设置this.wizardState = true
以触发向导打开 .在控制器中,您可以使用
@ViewChild(ClrWizard) wizard: ClrWizard;
在控制器上设置具有向导引用的属性 . 然后在您的响应处理程序中,您可以执行this.wizard.open()
来打开它 .