2012-04-09 8 views
0

:クライアント側でTapestry 5コンポーネントでparent encloserのclientIdを取得するにはどうすればよいですか?私は、次のAPI(.tmlコード)をimplementyしようTaperstry 5.下ExtJSのコンポーネントモデルを開発しています

<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は、同封のdddコンポーネントのclientIdを知っている必要があります。

どうすれば入手できますか?お知らせ下さい。

答えて

2

あなたは@InjectContainerを使用してコンポーネントの直接の容器を注入し、そのクライアントのIDを取得することができるはずです。

@InjectContainer 
private ClientElement container; 

@AfterRender 
void addScript() { 
    String containerClientId = container.getClientId(); 
    //pass client ID to JavaScript 
} 
関連する問題