gpt4 book ai didi

java - 与父组件通信

转载 作者:行者123 更新时间:2023-11-29 07:50:28 24 4
gpt4 key购买 nike

我有 MyPage.tml 页面和 MyComponent.tml 组件。

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<body>
<t:mycomponent />
</body>
</html>

我需要根据 MyComponent 中发生的情况在 MyPage 上显示一些数据。如何使 MyComponent 中的某些数据可用于 MyPage?是否有类似“反向”参数(子级将参数传递给父级)之类的东西?

最佳答案

您的组件在您的页面中作为一个变量可供您使用,您可以在其中从您的页面中访问所需的变量,如下所示:

@Component(id = "myComponent")
private MyComponent myComponent;

@SetupRender //or any other render event method
private void setup() {
Object compVariable = myComponent.getYourVariable();
}

如果你问我更优雅的是使用事件冒泡,因为如果需要,它可以更轻松地将一些逻辑重构到更深的组件中。

组件:

@Inject
private ComponentResources resources;

@SetupRender //or any other lifecycle event method
private void triggerEvent() {
Object yourVariable = new Object();
resources.triggerEvent("YOUR_EVENT_NAME", new Object[]{yourVariable}, null);
//add an event callback if needed where I use null here
}

页面:

@OnEvent(value = "YOUR_EVENT_NAME")
private void handleComponentEvent(Object yourVariable) {
//do something with yourVariable
//even return something which would then can be handled by your component callback handler
}

关于java - 与父组件通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652109/

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