阅读following question后,我将编译后的bootstrap JS插件文件包装在AMD模块中,如下所示:

define(['zepto'], function($){ ...Bootstrap pasted here... });


然后这就是我的main.js文件的配置样子:

require.config({
    baseUrl: 'js',
    paths: {
        'zepto': 'lib/zepto',
        'underscore': 'lib/underscore',
        'backbone': 'lib/backbone',
        'text': 'lib/text',
        'bootstrap': 'lib/bootstrap'
    },
    shim: {
        'zepto': {
            exports: '$'
        },
        'underscore': {
            exports: '_'
        },
        'backbone': {
            deps: ['zepto', 'underscore'],
            exports: 'Backbone'
        }
    }
});
require([
    'app',
    'zepto',
    'underscore',
    'backbone',
    'bootstrap'
    ],
    function(App){
        //start the app
        App.initialize();
});


但是在控制台中,我在bootstrap.js文件中收到以下错误:

Uncaught TypeError: undefined is not a function


即使将$传递到模块中,也似乎未定义$。完整包装的引导程序模块在here中可用。

我正在使用应该与Bootstrap兼容的zepto,并从垫片中导出$,所以看不到为什么这对我不起作用。

最佳答案

我通过在引导JS文件中添加以下代码行来解决此问题。

window.jQuery传递到修改后的函数中,以包括Zepto全局对象,就像window.jQuery || window.Zepto

此处有更多信息:

Zepto with Bootstrap

08-18 22:13
查看更多