0

我正在 Taperstry 5 下开发 ExtJS 组件模型。我尝试实现以下 API(.tml 代码):

<t:extjs.viewport t:id="ddd" layout="border" width="500">
    <t:extjs.panel t:id="contentBody" title="Content Body" />
</t:extjs.viewport>

在客户端,我希望收到以下内容:

Tapestry.onDOMLoaded(function() {
var ddd = Ext.create('Ext.container.Viewport', {
  "id" : "ddd",
  "layout" : "border",
  "width" : 500
});
var contentBody = Ext.create('Ext.panel.Panel', {
  "id" : "contentBody",
  "title" : "Content Body"
});
ddd.add(contentBody);
});

为了编写ddd.add(contentBody);子组件contentBody,应该知道封闭组件的 clientId ddd

我怎么才能得到它?请指教。

4

1 回答 1

2

您应该能够使用 @InjectContainer 注入组件的直接容器并获取其客户端 ID:

@InjectContainer
private ClientElement container;

@AfterRender
void addScript() {
    String containerClientId = container.getClientId();
    //pass client ID to JavaScript
}
于 2012-04-09T08:47:01.953 回答