【问题标题】:Clarity Wizard open without as soon as I open the page当我打开页面时,Clarity Wizard 就打开了
【发布时间】:2018-02-12 16:55:48
【问题描述】:

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

我正在使用 Angular + VMWare Clarity

问题是,如果我把:

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

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

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

【问题讨论】:

    标签: angular angular2-forms wizard vmware-clarity clarity


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢!所以我做了一个登录功能,如果用户名和密码正确,向导就会打开:if (result === true) { this.wizard.open() } 就像你说的那样,它起作用了!再次感谢您
    猜你喜欢
    • 2023-04-02
    • 2021-06-17
    • 1970-01-01
    • 2019-10-16
    • 2017-07-13
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    相关资源
    最近更新 更多