[英]Updating embeded components in seaside, without refreshing the whole page
我有一个组件(ItemTree),它有3个嵌入组件。 第一个(ItemTreeList)是要选择的项目列表。 第二个(ItemGIDE)显示所选项目的属性。
在ItemTreeList上进行新选择时,如何告诉ItemGIDE更新?
首先,这比我要做的更复杂。 ItemTreeList具有节点类型和节点实例的hirarchy。 它具有可折叠的div,当点击顶层hirarchy项或下面的实例时,将在其他对象上设置各种变量。 因此,只需单击即可完成大量操作。 我已经让ItemTreeList更新自己而不刷新整个页面。 只需要“声明”它需要刷新的其他组件(ItemGIDE)(再次没有刷新整个页面)。
“ Dynamic Web Development with Seaside ”一书包含一个关于JQuery的章节草案。 在那里,您可以找到一个名为“ 替换组件”的部分,其中包含您要求的示例:
OuterComponent>>renderContentOn: html
html div
id: (id := html nextId);
with: child.
html anchor
onClick: ((html jQuery id: id) load
html: [ :r |
child := OtherComponent new;
r render: child ]);
with: 'Change Component'
该代码显示了外部组件的render方法。 它假定组件有一个名为child
的变量,该变量使用初始渲染中显示的组件进行初始化。 此外,它假定组件具有一个名为id
的变量,该变量在呈现期间设置为记住呈现子组件的目标DOM节点。 在锚的AJAX回调中,用OtherComponent new
替换子组件并重新呈现目标节点的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.