簡體   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