Django-require - 如何在另一个模块之前加载模块

时间:2016-04-15 22:39:16

标签: python django datatables requirejs load

我正在使用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:如果我只导入没有数据表的数据表 - 响应它正常工作没有错误或其他问题

1 个答案:

答案 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扩展的完全工作的数据表(可能这也包括其他插件)。 希望这有助于某人,对任何英语错误感到抱歉,我是意大利人。

相关问题