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

Django-require - how to load a module before another

我正在使用 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'],
    }
});

我试图使数据表响应成为数据表的依赖项,但这不起作用。有什么想法吗?

PS:如果我只导入没有数据表响应的数据表,它可以正常工作,没有错误或其他问题

我终于找到了问题,或者更好的是,问题。 Datatables 已经是一个 AMD 模块,不需要填充,所以单独使用它不是问题,问题是另一个:datatables responsive。在我的研究中,我没有发现 任何东西 提到数据表响应需要以特定方式提供数据表。在我的 requirejs 配置中,我正在加载名称为 "datatables" 的数据表,但是当您响应式加载数据表时,在其代码中需要“datatables.net”。 这就是问题所在。数据表不需要填充,数据表也不需要响应,没有依赖关系或其他东西,只需定义它们。不得不说datatables responsive也需要在“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',
    },
});

然后在您的初始化文件(或任何您命名的文件)中,您将像这样导入它们:

define(['jquery','datatables.net','datatables.responsive'], function($, datatables) {

    $(document).ready(function() {
        $('#datatable').DataTable( {
            responsive: true,
        });
    });

});

FINISH! 现在你有一个完整的工作数据表,带有 require 扩展(可能这也包括其他插件)。 希望这对某人有所帮助,对于任何英语错误,我很抱歉,我是意大利人。