gpt4 book ai didi

smalltalk - 在 Seaside 中获取父组件

转载 作者:行者123 更新时间:2023-12-05 09:09:52 25 4
gpt4 key购买 nike

我想看看 Seaside 中是否有可能在不使用 session 或参数传递的情况下,子组件获取对父组件的引用。也就是说,子组件调用 self 获取父组件。

最佳答案

简短的回答是没有简单的方法可以做到这一点。

原因是 WAComponent(还有 WAPresenter)的子类没有直接引用父组件,因为出于渲染目的不需要这样做,因为访问者执行自上而下的路径,并根据父元素引入某种耦合,以及可能不使用的实例变量。

为了克服这个问题,我有自己的 WAComponent 子类,我们称它为 EAMComponent 并且这个组件有一个 parent 实例变量(并且在我的情况,也是一个 model 实例变量)。

EAMComponent 类 实现on: modelObject in: parentComponent(以及on:in:取决于前者,受 Dolphin's implementation of Model-View-Presenter 影响)。

那么在父组件上生成的习语是这样的:

createChildrenComponents

dateComponent := EAMTextComponent on: self date in: self.
footerComponent := EAMFooterComponent in: self.

然后在页脚组件中,您可以轻松引用作为参数传递给选择器的 in: 部分的对象 parent

关于smalltalk - 在 Seaside 中获取父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61957242/

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