Javascript 具有复杂数据模型的自定义Wicket(Ajax)控件

Javascript 具有复杂数据模型的自定义Wicket(Ajax)控件,javascript,d3.js,components,wicket,Javascript,D3.js,Components,Wicket,我们正在尝试Wicket(v8)的一个项目,我想知道以下场景的最佳实践是什么: 我们有一个数据库库函数,它返回一个列表 呼叫正在某个IModel 我们想要呈现一个由这个模型支持的d3可视化,我们称之为复杂化 该模型需要呈现为一些JavaScript变量(如JSON),这样我们的d3代码就可以将其用作输入 用户可以在其他控件中进行一些更改,以便数据库库调用将生成不同的列表 当ComplexVisualization作为Ajax目标添加时,JavaScript变量需要相应地更新其值,并且需要触发一

我们正在尝试Wicket(v8)的一个项目,我想知道以下场景的最佳实践是什么:

  • 我们有一个数据库库函数,它返回一个
    列表
  • 呼叫正在某个
    IModel
  • 我们想要呈现一个由这个模型支持的d3可视化,我们称之为
    复杂化
  • 该模型需要呈现为一些JavaScript变量(如JSON),这样我们的d3代码就可以将其用作输入
  • 用户可以在其他控件中进行一些更改,以便数据库库调用将生成不同的
    列表
  • 当ComplexVisualization作为Ajax目标添加时,JavaScript变量需要相应地更新其值,并且需要触发一些自定义JavaScript方法,以便我们可以刷新d3可视化
我正在寻找一些代码示例,其中有人可以指出应该扩展哪个类
ComplexVisualization
,如何为这个组件呈现一些HTML(如果需要),特别是如何让一个JavaScript变量与
IModel
同步

感谢您的帮助和建议


Daniel

complexSualization可能具有将其序列化为JSON的方法
toJson()
。此外,它可能有方法
update()
,该方法返回如下字符串:
“window.updateVisualization(“+toJson()+”)”
。这样,您应该使用
target.appendJavaScript(complexSualization.update())


JavaScript方法
updateVisualization
应该由JavaScriptHeaderItem贡献定义,例如在my lib.js中。

target.appendJavaScript
是缺少的一部分!太好了,谢谢你指出这一点!