0

我们在工作执行中有一个奇怪的自定义,我们需要从工作单到多的 3 个级别(层次结构是工作单->自定义清单对象(他们在开始处理工作单之前进行审查)->自定义危险对象->自定义预防措施目的)。这些对象中的每一个都具有三个视图(列表、详细信息视图和创建视图)。

现在,当用户创建危害时,它会返回到清单对象。我们希望打开危险的详细视图,以便有人可以轻松地修改已添加的预防措施或添加新的预防措施(而不必从新的清单对象->危险列表->危险详细信息中去)。直接在添加危险屏幕上编辑预防措施会导致许多其他问题,因此最好在允许用户添加预防措施之前强制用户创建危险。

在 New Hazard 视图中的创建按钮上,我们可以添加一个单击事件并使用 eventContext.ui.show("ViewName") 并显示我们的 hazard 详细视图(有效)。问题是当他们保存危险细节视图时,this.ui.hideCurrentView() 会关闭危险细节视图并返回到添加新危险视图,因为那是显示的最后一个视图。我们还了解到,如果有人在危害详细信息视图中使用后退按钮,则会导致危害被删除(而不是仅仅放弃他们在危害详细视图中所做的更改)。

我们真正想要的是当用户单击创建危险按钮时,它返回到新的清单对象视图,然后基于我们在对象上设置的标志(以确定添加了新危险)打开危险详细视图。我们已经尝试在新的清单视图以及视图中的按钮和文本框上渲染和显示事件处理程序事件,并且我们的代码会触发,但这似乎是因为它正在从添加危险视图转换到添加清单视图的过程中不允许新的 UI 转换。

有没有办法让我们从本质上注入危险细节视图应该是我们从添加危险视图返回的内容?也许通过修改 UserInterface 中的 viewHistory ?

4

1 回答 1

0

您可能可以动态修改视图堆栈,以从堆栈中删除 Add New Hazard 视图。如果您查看我们的一些平台代码,您可以了解如何做到这一点。一点点示例代码..

var viewHistory = eventContext.ui.viewHistory;
var previousView = viewHistory[viewHistory.length-2];

让我知道如果这个用例出现得更频繁,我们也许应该为你正式化这个 API。

更新:在 7.6 中,我们确实为您提供了这种方法,UserInterface.returnToView(viewId)

于 2016-03-17T16:55:52.037 回答