我有一个组件 (ItemTree),它有 3 个嵌入组件。第一个 (ItemTreeList) 是要选择的项目列表。第二个 (ItemGIDE) 显示您所选项目的属性。
当在 ItemTreeList 上进行新选择时,如何告诉 ItemGIDE 进行更新?
首先,这比我想象的要复杂。 ItemTreeList 具有节点类型和节点实例的层次结构。它具有可折叠的 div,当单击顶级层次结构项目或下面的实例时,将在其他对象上设置各种变量。因此,只需单击一下即可发生很多事情。我已经让 ItemTreeList 能够自行更新,而无需刷新整个页面。只需要向其他组件(ItemGIDE)“宣布”它需要刷新(再次无需刷新整个页面)。
- 我手头有 Jquery 和 Ajax。
- 我正在使用 Visualage Smalltalk 8.5.0 与海边3.0。 -我一直在考虑调用ItemTree来告诉 它的子组件要更新吗?
- 我一直在考虑使用 “宣布”到“宣布”其他组件进行更新?
- 我曾经 实际编程时间少于 6 个月?
最佳答案
这本书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'
代码显示了外部组件的渲染方法。它假设该组件有一个名为 child
的变量,该变量是使用初始渲染中显示的组件进行初始化的。此外,它假设组件有一个名为 id 的变量,该变量在渲染期间设置,以记住渲染子组件的目标 DOM 节点。在 anchor 的 AJAX 回调中,您将子组件替换为 OtherComponent new
并重新渲染目标节点的内容。
关于jquery - 更新海边的嵌入组件,无需刷新整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383999/