2011-03-27 16 views
5

Hey guys. Ben flot denen javascript grafik kütüphanesi için bir bileşen yapıyorum.JSF kompozit bileşenlerle sayfada benzersiz bir kimlik nasıl oluşturulur?

<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> 

Bu, şu ana kadar kullandığım küçük miktarda koddur. Sahip olduğum sorun, birden fazla grafik çıkarabilmem için bu div etiketini bir sayfada rastgele oluşturmamı nasıl sağlarımdır. Açıkçası mevcut durumda bunu yapmayacak. Değeri javascript işlevine iletmeliydim.

Sadece gerekli kimlikle başka bir özellik oluşturabildiğimi ve kullanıcının kimliği belirtmek zorunda kalacağını biliyorum, ancak kimliğin gerekmediğini birçok bileşende fark ettim. Icadlar nasil bazi nasil oldugu gibi primefaces ve icefaces gibi agir ajax/javascript kitapliklari gibi görünüyor.

Yardımlarınız için teşekkür ederiz.

cevap

6

Kompozit bileşenin kendi kimliğini #{cc.id}'a alabilirsiniz. Dolayısıyla, sadece yapmak, benzersiz olmak için: Eğer bileşende herhangi id niteliğini belirtmek yoksa

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

ve

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

MTU birini autogenerate edecektir. Örneğin. İşte foo

<my:plot id="foo"> 

kompozit komponent uygulanmasında #{cc.id} olarak kullanılacaktır.

+0

İşte başlıyoruz. Teşekkürler. Kimliği bir özellik olarak ekliyordum. Zaten tanımlı bir tane olduğunu bilmiyordum. Sanırım yeterince okumadım. –

İlgili konular