0

我正在使用 Clarity Design System 来构建我的 Angular 应用程序,并且我想制作一个有点复杂的向导。

在我的用例中,用户启动了一个包含两个页面的向导。在第一页上,她被问到一个问题。根据答案,两个新向导页面之一将插入到两个页面之间。IE:

1 问题页(是或否?)
2 完成

会变成

1 问题页面
2 是的新页面
3 完成

或者

1 问题页面
2 新页面
3 完成

根据用户的回答。

我正在尝试构建的内容与跳过和取消跳过步骤示例之间的区别在于,我希望在第一页上有两个自定义按钮,是和否,这样用户就不必单击额外的按钮(第一页的“下一步”按钮)。

但是,我正在<clr-wizard-page *ngIf="!skipStepTwo">使用示例中使用的方法来隐藏/显示动态页面。问题是,似乎我为导航到动态页面 2 而尝试处理的每个事件都发生在此新页面添加到 pagesCollection 之前。我最终出现了新页面,但向导已移至最后一页(第 3 页完成)。

有什么办法吗?我可以创建一个新页面并通过单击一次用户移动到它吗?

4

1 回答 1

2

如果没有您的确切代码,我不得不猜测您可能在做什么,但是使用您的自定义按钮,您需要设置标志,然后更改向导页面。这是一个潜在的解决方案。https://stackblitz.com/edit/clarity-wizard-skipping-custom-buttons

这里的问题是切换向导页面的状态并在同一个更改检测周期中导航不会及时提交新页面以使其导航到它,从而跳到下一页。我们有一个与此相关的已知错误。因此解决方法是使用 setTimeout 将导航延迟到下一个周期,以便新页面已解决并成为正确的页面。

于 2017-10-26T21:44:22.693 回答