2017-03-21 6 views
0

저는 Extra 백엔드에 레이아웃 HTML의 다른 자산을 백엔드로 포함하고 있습니다. 여러 DataTables를 초기화하기 위해서 : TYPO3 백엔드 모듈 DataTable은 함수가 아닙니다

<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 is not a function"

오류가

$(dataTables[i]).DataTable(dataTableOptions); 
. 다른 변형을 시도했지만 아무것도 작동하지 않습니다. 내 생각에, 문제는 백엔드 modul에서 jquery의 noconflict 버전이 될 것입니다. 그러나 나는이 문제를 해결할 생각이 없다. 나는 TYPO3이 표기법을 requirejs 당신은 다니엘

답변

1

글쎄, 주위 struggeling 후, 난 내 문제를 해결 나에게

최고의 regads 을 도울 수 있기를 바랍니다. 내 생각에, jQuery Typo3 noConflict 헤더가 문제가 될 것입니다. 왜 Typo3이 자신의 네임 스페이스를 사용하지 않는지 알지 못합니다. 하지만 제 생각에 모든 요구 사항을 뛰어 넘는 내 자신의/구식 js- 사서를 포함시키는 것이 최선의 방법 일 것입니다. 처음에는

, 당신의 js 파일에 정의 (내 : BackendModule.js가에 위치 'EXT : my_extension/자원/공공/자바 스크립트') 모든 전제 조건 /해야 의존성은 다음과 같습니다

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 파일 :