2013-11-06 1 views
1

Я хочу позвонить своим сценариям через apex:component. Поэтому вместо того, чтобы на моей странице было 3 пункта, я хочу:Добавление скрипта включает в себя компонент apex:?

<c:scripts /> 

и компонент 'scripts' будут содержать следующее.

<apex:component >  
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-1.9.1.js')}"/> 
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-ui-1.10.3.custom.min.js') }" /> 
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/anotherScript.js') }" />   
</apex:component> 

Но если мне нужен только один из этих сценариев, могу ли я передать аргумент в вызов компонента? Что-то вроде следующего ...

<c:scripts 
     myScript = true /> 

А потом компонент ...

<apex:component >  
Boolean myScript = <apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-1.9.1.js')}"/> 
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-ui-1.10.3.custom.min.js') }" /> 
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/anotherScript.js') }" />   
</apex:component> 

Есть элегантный способ сделать это?

Приветствия

ответ

1

Обнаружили ответ :)

<apex:component> 

    <apex:attribute name="includejQuery" type="Boolean" required="false" default="false" description="True to include jQuery" /> 

    <apex:outputPanel layout="none" rendered="{!includejQuery}"> 
     <apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-1.9.1.js')}"/> 
    </apex:outputPanel> 

     <apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/jquery-ui-1.10.3.custom.min.js') }" /> 
     <apex:includeScript value="{!URLFOR($Resource.jQuery, 'jQuery/js/anotherScript.js') }" /> 

</apex:component> 

Тогда в моей странице:

<apex:page> 
    ... 
    <c:Scripts includejQuery="true" /> 
    ... 
</apex:page>