jquery - 更新海边的嵌入组件,无需刷新整个页面

标签 jquery ajax smalltalk seaside visual-age

我有一个组件 (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/

相关文章:

Jquery,向元素添加类

javascript - 自动更新 slider jquery内的div内容

windows - Smalltalk 相当于 Windows 的检查工具

javascript - AWS SendRawEmail 与 Meteor

jquery - 使用 CSS 和 jQuery 实现类似 Google 的菜单

javascript - 如何检查 FormData 文件是否为空?

javascript - Codeigniter jquery ajax登录: get value from database and compare data entered

java - 您可以像 Java 应用程序一样部署用 smalltalk/squeak/pharo 编写的应用程序吗?

exception-handling - 引发自定义错误/异常

javascript - 使用 for 循环和 on.load 事件监听器进行流程控制