2017-01-30 80 views
1

Per的答案是解決方案的重要組成部分。爲了完整起見,我最終不得不這樣做。Xpages:讓FullCalendar與引導主題一起工作

首先,我必須解決Per提到的AMD問題。

然後我不得不修改我的Xpage,以確保正確的庫加載正確的順序。其中一些是通過試驗和錯誤完成的。

我必須將資源聚合設置設置爲true,但僅限於此設計元素。我不懂爲什麼。

然後,我需要添加2個js庫和一個css庫。時刻庫必須首先加載並使用頭標籤。接下來,我必須加載fullcalendar.min.js文件,但不是使用headTag,而是使用簡單腳本,然後使用style標記使用fullcalendar的css。

這樣做一切正常。下面是代碼,再下面是我的主題.....

設計代碼:

<xp:this.properties> 
    <xp:parameter name="xsp.resources.aggregate" value="true" /> 
</xp:this.properties> 

<div class="cal"></div> 

    <xp:this.resources> 
    <xp:headTag tagName="script"> 
     <xp:this.attributes> 
      <xp:parameter name="type" value="text/javascript" /> 
      <xp:parameter name="src" value="FullCalendar/moment.min.js" /> 
     </xp:this.attributes> 
     </xp:headTag> 
     <xp:script src="FullCalendar/fullcalendar.min.js" 
      clientSide="true"> 
     </xp:script> 
     <xp:styleSheet href="FullCalendar/fullcalendar.min.css"></xp:styleSheet> 
    </xp:this.resources> 

    <xp:panel id="CalendarContainer"></xp:panel> 
    <xp:scriptBlock id="scriptBlock1"> 
     <xp:this.value><![CDATA[$(document).ready(function() { 
    var calCon = $(".cal"); 
    calCon.fullCalendar({}); 
})]]></xp:this.value> 
    </xp:scriptBlock> 

</xp:view> 

主題代碼:

<!-- 
    Use this pattern to include resources (such as style sheets 
    and JavaScript files that are used by this theme. 
    --> 

<theme 
    extends="Bootstrap3" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="platform:/plugin/com.ibm.designer.domino.stylekits/schema/stylekit.xsd"> 

<resource> 
    <content-type>application/x-javascript</content-type> 
    <href>/.ibmxspres/domino/KendoUI/js/jquery.min.js</href> 
</resource> 

--><resource> 
    <content-type>text/css</content-type> 
    <href>/.ibmxspres/domino/KendoUI/styles/kendo.common.min.css</href> 
</resource> 

<resource> 
    <content-type>text/css</content-type> 
    <href>/.ibmxspres/domino/KendoUI/styles/kendo.blueopal.min.css</href> 
</resource> 

<resource> 
    <content-type>application/x-javascript</content-type> 
    <href>/.ibmxspres/domino/KendoUI/js/kendo.all.min.js</href> 
</resource> 

</theme> 

======== ================================================== ========

我想在我的Xpages應用程序中使用FullCalendar

只要我不使用我的標準主題,此代碼將起作用。因此,「webstandard」和「平臺默認的」都沒有問題,但引導不起作用,也不是我的主題延伸引導(見下文)

<theme 
    extends="Bootstrap3" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="platform:/plugin/com.ibm.designer.domino.stylekits/schema/stylekit.xsd"> 

<resource> 
    <content-type>application/x-javascript</content-type> 
    <href>/.ibmxspres/domino/KendoUI/js/jquery.min.js</href> 
</resource> 

--><resource> 
    <content-type>text/css</content-type> 
    <href>/.ibmxspres/domino/KendoUI/styles/kendo.common.min.css</href> 
</resource> 

<resource> 
    <content-type>text/css</content-type> 
    <href>/.ibmxspres/domino/KendoUI/styles/kendo.blueopal.min.css</href> 
</resource> 

<resource> 
    <content-type>application/x-javascript</content-type> 
    <href>/.ibmxspres/domino/KendoUI/js/kendo.all.min.js</href> 
</resource> 

</theme> 

當我嘗試使用我的主題我得到這個錯誤:

Uncaught TypeError: calCon.fullCalendar is not a function 

我試着把我需要在我的主題中使用的js/css,按照它們需要使用的順序,但是這也不起作用。

我在許多應用程序中使用scoBootstrap,並且不想而不是在需要日曆的應用程序中使用它。必須有某種方式爲我的JavaScript來一起生活...

下面是XPAGE代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

    <xp:this.properties> 
     <xp:parameter name="xsp.resources.aggregate" value="true" /> 
    </xp:this.properties> 

    <div class="cal"></div> 

<xp:this.resources> 
    <xp:headTag tagName="script"> 
      <xp:this.attributes> 
       <xp:parameter name="type" value="text/javascript" /> 
       <xp:parameter name="src" value="KendoUI/js/jquery.min.js" /> 
      </xp:this.attributes> 
     </xp:headTag> 
    <xp:headTag tagName="script"> 
     <xp:this.attributes> 
      <xp:parameter name="type" value="text/javascript" /> 
      <xp:parameter name="src" value="FullCalendar/moment.min.js" /> 
     </xp:this.attributes> 
     </xp:headTag> 
    <xp:headTag tagName="script"> 
     <xp:this.attributes> 
      <xp:parameter name="type" value="text/javascript" /> 
      <xp:parameter name="src" value="FullCalendar/fullcalendar.min.js" /> 
     </xp:this.attributes> 
    </xp:headTag> 
     <xp:headTag tagName="script"> 
      <xp:this.attributes> 
       <xp:parameter name="type" value="text/javascript" /> 
       <xp:parameter name="src" value="FullCalendar/fullcalendar.min.js" /> 
      </xp:this.attributes> 
     </xp:headTag> 
     <xp:styleSheet href="FullCalendar/fullcalendar.min.css"></xp:styleSheet> 
    </xp:this.resources> 

    <xp:panel id="CalendarContainer"></xp:panel> 
    <xp:scriptBlock id="scriptBlock1"> 
     <xp:this.value><![CDATA[$(document).ready(function() { 
    var calCon = $(".cal"); 
    calCon.fullCalendar({}); 
})]]></xp:this.value> 
    </xp:scriptBlock> 

</xp:view> 
+0

感覺與AMD裝載一個問題,但它只是一種猜測 –

回答

1

FullCalendar採用AMD加載。 Dojo和AMD加載衝突,因此從fullcalendar.min.js中刪除AMD部分。

更改源從這個第一部分:

!function(t){"function"==typeof define&&define.amd?define 

這樣:

!function(t){"function"==typeof define&&false?define