始终在特定类型的所有其他 HeaderItem 之后呈现某些 Wicket HeaderItem
Always render certain Wicket HeaderItem after all other HeaderItems of specific type
我有一个自定义 Wicket 行为 (RegisterBehaviour
),它可以附加到各种 Wicket 组件,以通过 RegisterBehaviour.renderHead(Component, IHeaderResponse)
中的 (OnDomReady-)HeaderItem 添加多个 JaveScript-Snippets 事件处理程序。
现在我需要在加载页面后立即触发这些事件之一,以使用某个计算值初始化所有组件。为此,我认为可以添加另一个 Wicket Behavior (TriggerBehaviour
) 来生成适当的 JaveScript-Snippet。
不过,我的问题是,此 TriggerBehaviour
生成的 JaveScript 代码段必须 运行 在 的 JaveScript 代码段之后 所有 一个页面和所有组件中的 RegisterBehaviour
已 运行。我知道 HeaderItems 可以有依赖关系,但这种机制似乎针对这种情况,当我想要加载某种公共库(如 jQuery)或代码执行 before 我的自定义代码.要在我的案例中使用它,我必须以某种方式找到正在添加到页面当前呈现阶段的所有 RegisterBehaviours
,并将它们作为依赖项动态添加到 TriggerBehaviour
,所以他们 运行 在 TriggerBehaviours
Java 脚本之前。不过,我看不出如何获取特定类型的所有 HeaderItems 的列表。
关于如何在 Wicket 或 JavaScript 中解决此问题的任何提示?
(使用 Java 8 和 Wicket 8.9.0)
您可以使用 FilteredHeaderItem。
RegisterBehaviour 和 TriggerBehaviour 都将在 FilteredHeaderItem
s 中贡献它们的 header 项。
在您的 HTML 模板中,您将为两个过滤器使用两个占位符:
<div id="registerFilter"></div>
<div id="triggerFilter"></div>
浏览器从上到下执行 JavaScript,因此触发的将在注册的之后。
我有一个自定义 Wicket 行为 (RegisterBehaviour
),它可以附加到各种 Wicket 组件,以通过 RegisterBehaviour.renderHead(Component, IHeaderResponse)
中的 (OnDomReady-)HeaderItem 添加多个 JaveScript-Snippets 事件处理程序。
现在我需要在加载页面后立即触发这些事件之一,以使用某个计算值初始化所有组件。为此,我认为可以添加另一个 Wicket Behavior (TriggerBehaviour
) 来生成适当的 JaveScript-Snippet。
不过,我的问题是,此 TriggerBehaviour
生成的 JaveScript 代码段必须 运行 在 的 JaveScript 代码段之后 所有 一个页面和所有组件中的 RegisterBehaviour
已 运行。我知道 HeaderItems 可以有依赖关系,但这种机制似乎针对这种情况,当我想要加载某种公共库(如 jQuery)或代码执行 before 我的自定义代码.要在我的案例中使用它,我必须以某种方式找到正在添加到页面当前呈现阶段的所有 RegisterBehaviours
,并将它们作为依赖项动态添加到 TriggerBehaviour
,所以他们 运行 在 TriggerBehaviours
Java 脚本之前。不过,我看不出如何获取特定类型的所有 HeaderItems 的列表。
关于如何在 Wicket 或 JavaScript 中解决此问题的任何提示?
(使用 Java 8 和 Wicket 8.9.0)
您可以使用 FilteredHeaderItem。
RegisterBehaviour 和 TriggerBehaviour 都将在 FilteredHeaderItem
s 中贡献它们的 header 项。
在您的 HTML 模板中,您将为两个过滤器使用两个占位符:
<div id="registerFilter"></div>
<div id="triggerFilter"></div>
浏览器从上到下执行 JavaScript,因此触发的将在注册的之后。