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 に答える