具有复杂数据模型的自定义 Wicket (Ajax) 控件
Custom Wicket (Ajax) Control with complex data model
我们正在为一个项目尝试 Wicket (v8),我想知道以下场景的最佳实践是什么:
- 我们有一个数据库库函数,其中returns一个
List<ComplexObject>
。
- 呼叫正在处理
IModel
- 我们想渲染一个由这个模型支持的 d3 可视化,我们称之为
ComplexVisualization
。
- 模型需要渲染到一些 JavaScript 变量(如 JSON),以便我们的 d3 代码可以将其用作输入。
- 用户可以在其他控件中进行一些更改,这样数据库库调用将生成不同的
List<ComplexObject>
- 当 ComplexVisualization 添加为 Ajax 目标时,JavaScript 变量需要相应地更新其值,并且需要触发一些自定义 JavaScript 方法以便我们可以刷新d3 可视化。
我正在寻找一些代码示例,其中有人可以指出 Class ComplexVisualization
应该从哪个扩展,我们如何为这个组件渲染一些 HTML(如果需要),尤其是如何让一个 JavaScript 变量与 IModel<List<ComplexObject>>
.
同步
感谢您的帮助和建议,
丹尼尔
ComplexVisualization 可能具有将其序列化为 JSON 的方法 toJson()
。此外,它可能有 update()
方法 returns 字符串,如:"window.updateVisualization(" + toJson() +")"
。这样你应该使用 target.appendJavaScript(complexVisualization.update())
.
JavaScript 方法 updateVisualization
应由 JavaScriptHeaderItem 贡献定义,例如在我的-lib.js.
我们正在为一个项目尝试 Wicket (v8),我想知道以下场景的最佳实践是什么:
- 我们有一个数据库库函数,其中returns一个
List<ComplexObject>
。 - 呼叫正在处理
IModel
- 我们想渲染一个由这个模型支持的 d3 可视化,我们称之为
ComplexVisualization
。 - 模型需要渲染到一些 JavaScript 变量(如 JSON),以便我们的 d3 代码可以将其用作输入。
- 用户可以在其他控件中进行一些更改,这样数据库库调用将生成不同的
List<ComplexObject>
- 当 ComplexVisualization 添加为 Ajax 目标时,JavaScript 变量需要相应地更新其值,并且需要触发一些自定义 JavaScript 方法以便我们可以刷新d3 可视化。
我正在寻找一些代码示例,其中有人可以指出 Class ComplexVisualization
应该从哪个扩展,我们如何为这个组件渲染一些 HTML(如果需要),尤其是如何让一个 JavaScript 变量与 IModel<List<ComplexObject>>
.
感谢您的帮助和建议,
丹尼尔
ComplexVisualization 可能具有将其序列化为 JSON 的方法 toJson()
。此外,它可能有 update()
方法 returns 字符串,如:"window.updateVisualization(" + toJson() +")"
。这样你应该使用 target.appendJavaScript(complexVisualization.update())
.
JavaScript 方法 updateVisualization
应由 JavaScriptHeaderItem 贡献定义,例如在我的-lib.js.