2011-03-27 37 views
5

Xin chào các bạn. Tôi đang tạo một thành phần cho thư viện biểu đồ javascript được gọi là flot.Làm cách nào để tạo id duy nhất trên trang với các thành phần tổng hợp JSF?

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

Đây là số lượng mã nhỏ tôi có cho đến nay. Vấn đề tôi có là làm cách nào để tôi tạo thẻ div ngẫu nhiên trên một trang để tôi có thể xuất nhiều biểu đồ. Rõ ràng nó sẽ không làm điều đó trong trạng thái hiện tại. Tôi sẽ cần phải chuyển giá trị vào hàm javascript.

Tôi biết tôi chỉ có thể tạo thuộc tính khác có id bắt buộc và người dùng sẽ phải chỉ định id, nhưng tôi đã nhận thấy trên nhiều thành phần không cần id. Có vẻ như trong các thư viện ajax/javascript nặng như các nguyên tố và các vùng băng mà các id là ngẫu nhiên một số cách.

Cảm ơn bạn đã được trợ giúp.

Trả lời

6

Bạn có thể lấy ID riêng của thành phần hỗn hợp theo #{cc.id}. Vì vậy, để đảm bảo tính độc đáo, chỉ cần làm:

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

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

JSF sẽ autogenerate một nếu bạn không chỉ định bất kỳ id thuộc tính trên thành phần. Ví dụ.

<my:plot id="foo"> 

Ở đây foo sẽ được sử dụng làm #{cc.id} trong triển khai thành phần tổng hợp.

+0

Có, chúng tôi đi. Cảm ơn. Tôi đã thêm id làm thuộc tính. Không biết đã có một định nghĩa. Đoán tôi đã không đọc đủ về nó. –

Các vấn đề liên quan