我一打开页面就打开 Clarity Wizard

Clarity Wizard open without as soon as I open the page

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

我正在使用 Angular + VMWare Clarity

问题是,如果我输入:

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

这将重定向到向导,而不先进行身份验证。所以如果用户名和密码不正确也没关系。

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

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

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

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

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