我们在工作执行中有一个奇怪的自定义,我们需要工作订单中的一个到多个3个级别(层次结构是工作订单 - >自定义清单对象(他们在开始处理工作单之前进行审核) - >自定义危害对象 - >自定义预防措施对象)。这些对象中的每一个都有三个视图(列表,详细视图和创建视图)。
现在,当用户创建危险时,它会返回到核对表对象。我们想要打开危险的详细视图,以便有人可以轻松修改添加的预防措施或添加新的预防措施(而不必从新的核对表对象 - >危险列表 - >危险详细信息)。在添加危险屏幕上直接编辑预防措施会导致一系列其他问题,因此在允许用户添加预防措施之前,最好强制用户创建危险。
在New Hazard视图的创建按钮上,我们可以添加一个click事件并使用eventContext.ui.show(“ViewName”)并显示我们的危险详细信息视图(可以工作)。问题是当他们保存危险详细信息视图时,this.ui.hideCurrentView()会关闭危险详细信息视图并返回到添加新危险视图,因为这是显示的最后一个视图。我们还了解到,如果有人使用危险详细信息视图中的后退按钮,则会导致危险被删除(而不是仅丢弃他们在危险详细信息视图中所做的更改)。
我们真正想要的是当用户点击创建危险按钮时,它返回到新的核对表对象视图,然后基于我们在对象上设置的标志(以确定添加了新的危险)打开危险详细信息视图。我们试过渲染&在新的核对表视图和视图中的按钮和文本框上显示事件处理程序事件,我们的代码会触发,但似乎是因为它正处于从添加危险视图转换到添加核对表视图的过程中,它不允许新的UI过渡。
我们是否有办法基本注入危险细节视图应该是我们从添加危险视图返回的内容?也许通过修改UserInterface中的viewHistory?
答案 0 :(得分:0)
您可以动态修改视图堆栈,从堆栈中删除Add New Hazard视图。如果你看一些我们的平台代码,你可以看到如何做到这一点。一点示例代码..
$('[data-uk-switcher]').on('show.uk.switcher', function(event, area){
if(area == 1){ /* do something if we clicked button with index 1 */ };});
Lemme知道这个用例是否经常出现,我们可能应该为您正式化这个API。
更新:在7.6中我们有这个方法,UserInterface.returnToView(viewId)