簡體   English   中英

TYPO3后端模塊DataTable沒有功能

[英]TYPO3 backend modul DataTable is no function

我在我的extbase后端中包括在Layout html中調制不同的資產。 要初始化多個數據表:

$(dataTables[i]).DataTable(dataTableOptions);

 <f:be.container enableClickMenu="false" loadExtJs="false" enableExtJsDebug="true" > <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/jquery-1.11.3.min.js')}"></script> <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/jquery-ui.min.js')}"></script> <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/jquery.dataTables.min.js')}"></script> <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/moment.min.js')}"></script> <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/jquery.multiselect.min.js')}"></script> <script type="text/javascript" src="{f:uri.resource(path:'js/Backend/lib/jstree.min.js')}"></script> 

但是在更新到TYPO3 7.6.15之后,總會有

“ TypeError:$(...)。DataTable不是函數”

錯誤。 我嘗試了不同的變體,但沒有任何效果。 我認為,問題將是后端模塊中的jquery的noconflict版本。 但是我不知道要解決這個問題。 我希望你能幫幫我

最好的丹尼爾斯

好吧,在苦苦掙扎之后,我用Typo3 requirejs表示法解決了我的問題。 我認為,包括jQuery Typo3 noConflict標頭將是問題,我不知道為什么Typo3不在自己的方法中使用自己的名稱空間。 但我認為,將我自己的/舊式js庫包含在requirejs中將是最佳做法。

首先,在您的js文件中定義所有先決條件/依賴項(我的文件:BackendModule.js放置在“ EXT:my_extension / Resources / Public / JavaScript”中),其中包括:

 define([
'jquery',
'TYPO3/CMS/MyExtension/jquery-ui-widgets',
'moment',
'TYPO3/CMS/MyExtension/jquery.multiselect.min',
'datatables', ], function($, widgets, moment,multiselect) {[YOUR CODE]});

命名空間“ TYPO3 / CMS / MyExtension / jquery-ui-widgets”映射到路徑:“ EXT:my_extension / Resources / Public / JavaScript / jquery-ui-widgets.js”

之后,我必須在模板中包含我的Js-File:

<f:be.container
        loadExtJsTheme="false"
        enableExtJsDebug="false"
        loadJQuery="false"
        jQueryNamespace="defaultNoConflict"
        includeRequireJsModules="{
            0:'TYPO3/CMS/MyExtension/BackendModule'
        }"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM