我正在使用django-require,我需要在我的html页面中导入Datatables和Datatables Responsive(这是一个数据表的插件,使其更具响应性)。 这里的问题是,当我将所有路径设置为datatables.js和datatables.responsive.js时,最终的js会出现阻止页面中所有脚本的错误。基本上我认为这是因为datatables.responsive需要在数据表之前加载,因为数据表引用了datatables.responsive中的函数。
实际上我的common.js文件是这样的:
requirejs.config({
baseUrl: '../static/js',
paths: {
"app" : 'app',
"jquery" : '../jquery/dist/jquery.min',
"datatables-responsive" : '../datatables.net-responsive/js/dataTables.responsive',
"datatables" : '../datatables.net/js/jquery.dataTables',
},
shim: {
"datatables-responsive" : ['jquery'],
"datatables" : ['datatables-responsive'],
}
});
我试图让datatables响应数据表的依赖,但这不起作用。有什么想法吗?
PS:如果我只导入没有数据表的数据表 - 响应它正常工作没有错误或其他问题
答案 0 :(得分:0)
我终于找到了问题,或者更好的是问题。 数据表已经是一个AMD模块,不需要填充,所以单独使用它不是一个问题,问题是另一个:数据表响应。在我的研究中,我没有发现 ANYTHING 提到数据表响应需要特定方式的数据表。在我的requirejs配置中,我正在加载名为" datatables"的数据表,但是当您加载响应数据表时,在其代码中需要" datatables.net "。 这就是问题。数据表不需要填充,数据表无响应,没有依赖或其他东西,只需定义它们。必须说数据表响应也需要jQuery名称为" jquery "。只需查看下面的代码,了解导入它们的正确方法:
requirejs.config({
paths: {
"jquery" : './path/to/jquery/dist/jquery',
"datatables.responsive" : './path/to/datatables.net-responsive/js/dataTables.responsive',
"datatables.net" : './path/to/datatables.net/js/jquery.dataTables',
},
});
然后在你的init文件中(或者你称之为的任何文件),你将像这样导入它们:
define(['jquery','datatables.net','datatables.responsive'], function($, datatables) {
$(document).ready(function() {
$('#datatable').DataTable( {
responsive: true,
});
});
});
结束!现在你有一个带有require扩展的完全工作的数据表(可能这也包括其他插件)。 希望这有助于某人,对任何英语错误感到抱歉,我是意大利人。