6

私はflotと呼ばれるJavascriptチャートライブラリのコンポーネントを作成しています。

<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が不要であることに気づきました。Primefacesやicefacesのような重いajax/javascriptライブラリでは、IDが何らかの形でランダムであるように見えます。

4

1 に答える 1

7

複合コンポーネント自体のIDは。で取得できます#{cc.id}。したがって、一意性を確保するには、次のようにします。

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

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

idコンポーネントに属性を指定しない場合、JSFは1つを自動生成します。例えば

<my:plot id="foo">

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

于 2011-03-27T03:54:04.840 に答える