gpt4 book ai didi

components - 如何简单地重定向到另一个顶级 Seaside 组件?

转载 作者:行者123 更新时间:2023-12-05 00:36:41 26 4
gpt4 key购买 nike

新手问题。谷歌根本没有帮助。此外,我遇到的问题有点难以正确解释。

我的应用程序中有两个组件:一个 JournalView 和一个 JournalEntryView。 JournalView 显示带有指向单个条目的链接的日志条目列表。单击时,这些链接中的每一个都应创建一个新的 JournalEntryView 并重定向到这个新创建的 JournalEntryView。

目前,我这样做:

html anchor
callback: [
entryView := JournalEntryView new.
entryView entry: anEntry.
self call: entryView ];
with: '(read more)' ]

问题是,这段代码期望新创建的组件稍后用一个值来回答。查看光环,我可以看到以下组件层次结构:
JournalView
WADelegation
WAAnswerHandler
JournalEntryView

我不要这个。我希望我的 JournalEntryView 是一个顶级 View ,我只希望我的 anchor 重定向到一个新的顶级 JournalEntryView。

这在海边可以吗?

最佳答案

您可以使用公告。它应该是这样的:

ComponentA>>renderContentOn: html 
html anchor
callback: [
self announce: (ViewEntryAnnouncement with: anEntry) ];
with: '(read more)' ].

然后,当您声明 ComponentA 时。你做这样的事情:
ParentComponent>>initialize
super initialize.
componentA := (ComponentA new
on: ViewEntryAnnouncement do: [ :ann |
| entryView |
entryView := JournalEntryView new.
entryView entry: ann entry.
self call: entryView ];
yourself)

这样你就可以向你的 parent 宣布发生了一些事情,你的 parent 可以使用react。

这种方法在大多数情况下都有效,但您需要向组件添加机制以对公告使用react(默认情况下尚未准备就绪)。如果可以,更好的方法是在层次结构的顶部创建自己的 Component 类,该类可以处理公告。
周围有一些例子(在 Pharo 中)......

希望这可以帮助 :)

关于components - 如何简单地重定向到另一个顶级 Seaside 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com