繁体   English   中英

在海边更新嵌入式组件,无需刷新整个页面

[英]Updating embeded components in seaside, without refreshing the whole page

我有一个组件(ItemTree),它有3个嵌入组件。 第一个(ItemTreeList)是要选择的项目列表。 第二个(ItemGIDE)显示所选项目的属性。

在ItemTreeList上进行新选择时,如何告诉ItemGIDE更新?

首先,这比我要做的更复杂。 ItemTreeList具有节点类型和节点实例的hirarchy。 它具有可折叠的div,当点击顶层hirarchy项或下面的实例时,将在其他对象上设置各种变量。 因此,只需单击即可完成大量操作。 我已经让ItemTreeList更新自己而不刷新整个页面。 只需要“声明”它需要刷新的其他组件(ItemGIDE)(再次没有刷新整个页面)。

  • 我手边有Jquery和Ajax。
  • 我正在使用Visualage Smalltalk 8.5.0和Seaside 3.0。 - 我一直在考虑调用ItemTree来告诉它的子组件更新?
  • 我一直在考虑使用'announce'来“宣布”其他组件进行更新?
  • 我一直在做不到6个月的实际编程?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM