jQuery datatables Fehler in require.js: undefined keine Funktion
Hallo, ich bin versucht zu konfigurieren datables, mit zu arbeiten require.js. Ich habe kein problem mit es funktioniert über regelmäßige script-tags, aber es nicht auf require.js mit einer Fehlermeldung undefined is not function
wenn ich versuche zu initialisieren meiner datatable.
Unten ist mein code:
require.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min',
'underscore': 'lib/underscore',
'backbone': 'lib/backbone',
'jquery.bootstrap': 'lib/bootstrap.min',
'jquery.dataTables' : 'lib/jquery.dataTables',
'bootstrap.datepicker' : 'lib/bootstrap-datepicker'
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'jquery.bootstrap': {
deps: ['jquery']
},
'bootstrap.datepicker': {
deps: ['jquery.bootstrap']
}
}
});
require(['jquery', 'jquery.bootstrap','jquery.dataTables','bootstrap.datepicker'],
function () {
var element = {
"roeid": "TB582552763",
"reportDate": "20140520",
"status": "R",
"rejReason": "Missing Order",
"rejType": "Context",
"roe": "#OE#|EX|N|TB582552751|||JPMS|20140520"
};
var data = [];
for (var i = 0; i < 100; i++) {
data.push(element);
};
var columns = [{
sTitle: 'ROEID',
data: 'roeid'
}, {
sTitle: 'Report Date',
data: 'reportDate'
}, {
sTitle: 'Status',
data: 'status'
}, {
sTitle: 'Rej Reason',
data: 'rejReason'
}, {
sTitle: 'Rej Type',
data: 'rejType'
}, {
sTitle: 'roeid',
data: 'roe'
}];
$(function() {
var oatsTable = $('#oatsTable').DataTable({
data: data,
columns: columns
});
$('#oatsTable tbody').on('click', 'tr', function () {
$(this).toggleClass('selected');
console.log(oatsTable.row(this).data());
console.log(oatsTable.rows('.selected').data().length + ' row(s) selected');
});
$('#oats-upload-file').click(function () {
$('#oats-file-upload-modal').modal('show');
});
$('#oats-file-submit').click(function () {
$('#oats-file-upload-modal').modal('show');
});
});
});
UPDATE
Seit Datentabellen identifiziert sich selbst als eine named-Modul, genau wie jquery, alles, was ich zu tun hatte, für diese arbeiten zu verwenden, die denselben Namen wie ein Modul namens, durch die Umbenennung von 'jquery.dataTables' Abhängigkeit name 'datables" unter erfordern.config Pfade, unten ist der Arbeits-code
require.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min',
'underscore': 'lib/underscore',
'backbone': 'lib/backbone',
'jquery.bootstrap': 'lib/bootstrap.min',
'datatables' : 'lib/jquery.dataTables',
'bootstrap.datepicker' : 'lib/bootstrap-datepicker'
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'jquery.bootstrap': {
deps: ['jquery']
},
'bootstrap.datepicker': {
deps: ['jquery.bootstrap']
}
}
});
require(['jquery', 'jquery.bootstrap','datatables','bootstrap.datepicker'],
function () {
var element = {
"roeid": "TB582552763",
"reportDate": "20140520",
"status": "R",
"rejReason": "Missing Order",
"rejType": "Context",
"roe": "#OE#|EX|N|TB582552751|||JPMS|20140520"
};
var data = [];
for (var i = 0; i < 100; i++) {
data.push(element);
};
var columns = [{
sTitle: 'ROEID',
data: 'roeid'
}, {
sTitle: 'Report Date',
data: 'reportDate'
}, {
sTitle: 'Status',
data: 'status'
}, {
sTitle: 'Rej Reason',
data: 'rejReason'
}, {
sTitle: 'Rej Type',
data: 'rejType'
}, {
sTitle: 'roeid',
data: 'roe'
}];
$(function() {
var oatsTable = $('#oatsTable').DataTable({
data: data,
columns: columns
});
$('#oatsTable tbody').on('click', 'tr', function () {
$(this).toggleClass('selected');
console.log(oatsTable.row(this).data());
console.log(oatsTable.rows('.selected').data().length + ' row(s) selected');
});
$('#oats-upload-file').click(function () {
$('#oats-file-upload-modal').modal('show');
});
$('#oats-file-submit').click(function () {
$('#oats-file-upload-modal').modal('show');
});
});
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit Datentabellen identifiziert sich selbst als eine named-Modul, genau wie jquery, alles, was ich zu tun hatte, für diese arbeiten zu verwenden, die denselben Namen wie ein Modul namens, durch die Umbenennung von 'jquery.dataTables' Abhängigkeit name 'datables" unter erfordern.config Pfade,
unten ist der Arbeits-code:
Fügen Sie diese in Ihre
shim
config:Das endgültige Ergebnis wird sein:
Was ist Los?
Die Sie versuchen zu laufen
DataTable
ohne Vorherige RequireJS' Zustimmung. Eine asynchrone Erfahrung mit RequireJS, müssen Sie angeben, welche Bibliotheken Sie möchten, entsorgen Sie und wie werden Sie für Sie anrufen und deshalb habe ich exportiertDataTables
durch Ihre shim-Konfiguration.$(function() { ... }
, versuchen Sie, überprüfen Sie heraus, was die Rückkehr vonDataTables
.