2011-03-27 15 views
5

こんにちは。私は、flotと呼ばれるjavascriptチャートライブラリのコンポーネントを作っています。JSFコンポジットコンポーネントでページ上でidをユニークにする方法はありますか?

<cc:interface>   
    <cc:attribute name="data" required="true" /> 
</cc:interface> 

<cc:implementation>  

    <div id="placeholder" style="width:600px;height:300px;"></div> 

    <script type="text/javascript"> 
     //<![CDATA[ 
    $(function() {  

     var d1 = [#{cc.attrs.data}];  

     $.plot($("#placeholder"), [ d1 ]); 

    }); 
    //]]> 
    </script> 

</cc:implementation> 

これは私がこれまで持っていた少量のコードです。私が持っている問題は、divタグをページ上にランダムに生成させ、複数のグラフを出力できるようにすることです。明らかに、現在の状態ではそうしないでしょう。私は、javascript関数に値を渡す必要があります。

idが必須の別の属性を作成することができ、ユーザーがidを指定する必要があることがわかりましたが、idが不要なコンポーネントが多数見つかりました。重いajax/javascriptライブラリ(primefaceやicefaceのようなもの)は、どのようにランダムであるかのようです。

ありがとうございました。

答えて

6

複合コンポーネントのIDは#{cc.id}で取得できます。だからやる、一意性を確保するために:あなたがコンポーネント上の任意のid属性を指定しない場合

<div id="#{cc.id}_placeholder" style="width:600px;height:300px;"></div> 

$.plot($("##{cc.id}_placeholder"), [ d1 ]); 

JSFは1を自動生成します。例えば。

ここ
<my:plot id="foo"> 

fooは複合コンポーネントの実装に#{cc.id}として使用されます。

+0

私たちは行きます。ありがとう。 idを属性として追加していました。既に定義されているものがあるかどうかはわかりませんでした。私はそれを十分に読まなかったと思います。 –

関連する問題