【问题标题】:TYPO3 backend modul DataTable is no functionTYPO3 后端模块 DataTable 没有功能
【发布时间】:2017-03-21 11:22:43
【问题描述】:

我在我的 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 的无冲突版本。但我不知道,要解决这个问题。我希望你能帮助我

最好的评价 丹尼尔

【问题讨论】:

    标签: jquery datatables typo3 backend typo3-7.6.x


    【解决方案1】:

    好吧,在苦苦挣扎之后,我用 Typo3 requirejs 表示法解决了我的问题。我认为,包括 jQuery Typo3 noConflict 标头在内的问题将是问题,我不知道为什么 Typo3 不使用她自己的命名空间来用于他们的方法。但我认为,在 requirejs 上包含我自己/遗留的所有 js-librariers 将是最佳实践。

    首先,在你的 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 文件:

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

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多