在CakePHP中使用RequireJS加载数据表:DebugKit问题

w3jimmy

我已对这个问题进行了重新编辑,以使其尽可能保持清洁。我希望那不会打扰您。

我的主要问题是在我的requirejs设置中无法正确加载jquery插件数据表。(v1.9.4)

我也试图使用DT_bootstrap(将数据表扩展到引导程序)。当我运行页面时,控制台始终告诉我DT_bootstrap失败,因为未定义$ .fn.dataTable。该问题不能出现在DT_bootstrap中,因为我不需要它来运行数据表,而且如果我从应用程序中删除它,则错误仍然相同。我在这里阅读到requirejs尚未准备就绪,无法正常加载requirejs,但是我发现有些人最终成功实现了它,其中大多数人以不同的方式进行实现。到目前为止,我发现的所有示例都不适合我。

错误:“未捕获的TypeError:无法读取$ .fn.dataTable类型(DT_bootstrap.js)typeof的属性'defaults'未定义,它应该是一个函数...

在我决定在自己的应用中实现requirejs之前,我的一个脚本(general.js)正在检查是否有任何带有“ datatable”类的表,并且当它们存在时,我将异步运行datatables脚本,效果很好。我宁愿保持这种方式,以免在我所有的应用程序页面中都加载数据表代码,但这是行不通的。我收到与尝试使用requirejs加载时完全相同的错误。

这是我的“数据主”脚本:

require.config({
    paths: {
        "jquery": "../vendor/jquery/jquery", // 1.9.1
        "jquery.cookie": "../vendor/jquery.cookie/jquery.cookie",
        "bootstrap": "../vendor/bootstrap/docs/assets/js/bootstrap", // 2.3.2
        "bootstrap-timepicker": "../vendor/bootstrap-timepicker/js/bootstrap-timepicker",
        "jqueryui": "jquery-ui-1.10.3.custom.min",
        "datatables": "jquery.dataTables", // 1.9.4
        "datatables-bootstrap": "DT_bootstrap",
        "modernizr": "../vendor/modernizr/modernizr",
        "general": "general"
    },
    shim: {
        "jquery": {
            "exports": 'jQuery'
        },
        "jquery.cookie": {
            "deps": ["jQuery"],
            "exports": 'jQuery'
        },
        "bootstrap": {
            "deps": ['jQuery'],
            "exports": 'jQuery'
        },
        "bootstrap-timepicker" : {
            "deps": ['jQuery', 'bootstrap']
        },
        "datatables": {
            "deps": ['jQuery']
        },
        "datatables-bootstrap": {
            "deps": ['jQuery', 'datatables', 'bootstrap']
        },
        "jqueryui": {
            "deps": ['jQuery']
        },
        "general": {
            "deps": ['jQuery', 'bootstrap']
        }
    }
});

require(
    [
        "modernizr", 
        "jquery", 
        "jquery.cookie", 
        "bootstrap", 
        "bootstrap-timepicker", 
        "jqueryui", 
        "general",
        "datatables",
        "datatables-bootstrap"
    ], 
    function () {
        //  console.log('something here');
    }
);

另请注意:

  1. 这就是我运行require.js的方式:(<script type="text/javascript" src="/js/require.js" data-main="/js/app.js"></script>请注意,javascript文件夹的路径以“ /”开头)

  2. 如果删除“ datatables”和“ datatables-bootstrap”,则我的应用程序运行无任何错误

  3. 在我的general.js中,我还有其他条件会异步运行jquery插件(除数据表以外的所有方法)

    示例:如果存在calendar元素,则通过加载jquery插件日历脚本 $.getScript()

  4. 用户dcodesmith最近尝试帮助我(检查他的回答),并要求我在我的应用中尝试配置,但该操作无效。然后,我尝试在一个简单的网站中使用它,并在该简单应用程序中使用,但是在我的Cakephp应用程序中却没有发生这种情况,其中javascript文件夹被称为“ / js”。我发现的主要区别是:在他的应用程序中,所有文件都位于同一文件夹中,而这在我的应用程序中没有发生(可能与第1点有关)。

  5. 我一直在使用也尝试过"exports": 'jQuery.fn.dataTable',甚至"exports": 'jQuery.fn.DataTable'还是"exports": '$.fn.dataTable'......均无功而返

  6. 作为测试,如果我从配置中删除两个数据表脚本,然后$.getScript()成功运行文件加载,但仍未定义jquery插件($ .fn.dataTable),因此仍然无法使用它

w3jimmy

我终于找到了问题的根源。

我用cakephp应用程序重新创建了一个具有相同路由和文件夹类型的网站,终于找到了一些东西。

我在CakePHP中使用了一个称为DebugKit的调试插件,该插件在文档末尾追加了2个脚本。其中之一是jQuery 1.8.1和该插件的脚本,该脚本基本上是一个类似于水平导航的工具栏。

经常有人告诉我不要担心删除此jQuery实例,因为它是以非冲突方式加载的,碰巧一旦禁用此实例,我的requirejs配置终于可以根据需要与插件数据表一起使用了!

我不知道为什么会发生这种冲突,但是我很确定它来自代码的这一部分:https : //github.com/cakephp/debug_kit/blob/master/webroot/js/js_debug_toolbar。 js#L59-73

我以前从没注意到这一点,因为我仅在admin部分使用了datatables插件,而以我的管理员身份登录时php debugger插件始终处于打开状态。

我将标题更改为包括cakephp,这可能对遇到相同问题的人有用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在CakePHP中使用RequireJS加载数据表:DebugKit问题

来自分类Dev

如何在MVC中使用Ajax将数据加载到数据表中

来自分类Dev

使用数据表加载覆盖

来自分类Dev

无法使用JSON加载数据表

来自分类Dev

使用PHP显示数据表的问题

来自分类Dev

使用Powershell在数据表中加载多个SQL查询结果集的问题

来自分类Dev

在 Internet Explorer 中使用固定标题的 Jquery 数据表过滤问题

来自分类Dev

使用Ajax加载无法正确加载数据表

来自分类Dev

带有RequireJS的数据表

来自分类Dev

数据表加载列表

来自分类Dev

数据表创建问题

来自分类Dev

数据表导轨问题

来自分类Dev

数据表搜索问题

来自分类Dev

CakePHP 3 Debugkit.toolbar无法加载

来自分类Dev

CakePHP DebugKit已加载但未显示

来自分类Dev

CakePHP 3 Debugkit.toolbar无法加载

来自分类Dev

在“外部”数据表中使用“按参数”过滤“内部”数据表

来自分类Dev

Django-使用Ajax重新加载数据表

来自分类Dev

使用CommandLink更新数据表时遇到问题

来自分类Dev

使用fixedColumn的数据表滚动x问题

来自分类Dev

Cakephp数据表SSP分组依据

来自分类Dev

在数据表中使用分页时,验证失败

来自分类Dev

在Shiny中使用过滤后的数据表

来自分类Dev

在数据表中使用lapply()中的.SD列名

来自分类Dev

如何在Yajra数据表中使用雄辩的关系?

来自分类Dev

是否在数据表中使用其他条件?

来自分类Dev

在R中使用xpath刮擦数据表

来自分类Dev

在数据表中使用分页时,验证失败

来自分类Dev

在C#中使用Outlook API发送数据表