- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在子流状态中调用对话框,以便禁用背景(当前流)?
这样当子流结束时(关闭弹出对话框后),它可以更新父流(当前页面)。
我正在尝试通过子流程实现如下图所示的效果:
更新:
最后我在 webflow 中使用了以下代码来动态生成对话框:
<render fragments="dialogContent"/>
最佳答案
我不认为 webflow parent -> subflow transitions 是为这样的问题设计的。 Web 流程假定您正在从页面过渡 -> 页面。最好的办法是在弹出窗口初始化为父/主流程中定义的特定转换时进行 ajax/javascript 调用,并将要执行的逻辑放在转换中。您可以配置 Spring Webflow 以返回仅由您的 javascript 代码呈现的 html 片段。
这是我的一个项目中的示例。
<view-state id="edit" view="flows/s/#{flowScope.modelPathName}/v/edit" model="modelObj">
<!-- NOTE: Inheriting flow must implement its own specific binding
<binder>
<binding property="name" />
<binding property="description" />
</binder>
-->
<transition on="saveModel" to="chkLocalmodelObjDiff"/>
<transition on="cancelSave" to="cancelEdit" bind="false"/>
<transition on="objUnlink">
<set name="flashScope.viewResponse" value="pbmService.removeObjRelationship(requestParameters.objId,requestParameters.objName,modelObj)"/>
<render fragments="view_response_msg" />
</transition>
所以在上面的示例中,我们处于“父/主”流程中。 “objUnlink”转换可以由看起来像这样的 html 链接触发。
(sudo 代码 url):
${flowExecutionUrl}?_eventId='objUnlink'&someOtherParam=2
触发转换所需的参数是:"_eventId=objUnlink"
或通过 ajax 调用,其中 url 的结构如下:
(sudo 代码 url):
${flowExecutionUrl}?_eventId='objUnlink'&someOtherParam=2&ajaxSource=true
通过 ajax 触发转换所需的参数是: “_eventId=objUnlink”和“ajaxSource=true”
因为我们有:
<render fragments="view_response_msg" />
触发任一 url 将仅呈现由您的 View 定义的“view_response_msg”片段。在我的例子中,我使用 thymeleaf 作为我的 View 框架,'view_response_msg' 被定义为 thymeleaf 中的一个片段。
因此,在发送请求并执行转换后,我的响应正文将仅包含在我的“view_response_msg”中定义的渲染 html(而不是整个页面)。
因此对于您的用例,您应该:
在您的 View 框架中定义一个仅呈现弹出窗口内容的片段。为了与我们的示例保持一致,将其称为“view_response_msg”
然后通过 AJAX 在父/主流程上调用特定的转换。再次保持一致将其称为“objUnlink”
然后将这个部分呈现的 html 响应存储在一个 javascript 变量中(记住我们从 ajax 调用中调用了这个转换),然后将它显示在您的弹出窗口中。
如果您想在有人关闭弹出窗口时更新父/主流程,请使用相同的概念并创建另一个 ajax 调用 -> 转换 -> 片段渲染。记住我们还没有离开主流。
很抱歉回答很长,但这不是一个小问题:)
注意:必须明确配置 Spring Web Flow 才能处理 ajax 请求。请参阅文档。此外,您的特定 View 框架(例如 thymeleaf)可能具有自己的特定配置/实现,用于 Web Flow 处理 ajax 请求和呈现片段。
关于jsf - 如何在子流程中包含弹出对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000963/
我是一名优秀的程序员,十分优秀!