我有一个组件(ItemTree),它有3个嵌入组件。第一个(ItemTreeList)是要选择的项目列表。第二个(ItemGIDE)显示所选项目的属性。
如何在ItemTreeList上进行新选择时告诉ItemGIDE更新?
首先,这比我要做的更复杂。 ItemTreeList具有节点类型和节点实例的hirarchy。它具有可折叠的div,当点击顶层hirarchy项或下面的实例时,将在其他对象上设置各种变量。因此,只需单击即可完成大量操作。我已经让ItemTreeList更新自己而不刷新整个页面。只需要“声明”它需要刷新的其他组件(ItemGIDE)(再次没有刷新整个页面)。
答案 0 :(得分:3)
本书Dynamic Web Development with Seaside包含有关JQuery的章节草稿。在那里,您会找到一个名为Replace a Component的部分,其中包含您要求的示例:
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
替换子组件并重新呈现目标节点的内容。