我正在尝试学习KendoUI和RequireJS。
我创建了一个简单的应用程序,该应用程序在加载时显示窗口。

我的require.config看起来像这样:

require.config({
    paths: {
        jQuery: [
            'http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min',
            'libs/jquery-2.1.0'
        ],
        underscore: [
            'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min',
            'libs/underscore'
        ],
        handlebars: [
            'http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0-alpha.2/handlebars.min',
            'libs/handlebars'
        ],
        k: 'libs/kendo',
        text: 'libs/require/text',
        async: 'libs/require/async',
        templates: 'templates'

    },
    shim: {
        'jQuery': {
            exports: '$'
        },
        'underscore': {
            exports: '_'
        },
        'handlebars': {
            exports: 'Handlebars'
        },
        "k": {
          deps: ["jQuery"]
      }
    }
});


而我的主要:

require(['jQuery', 'handlebars', 'helpers/handlebarsHelper', 'k/kendo.notification', 'k/kendo.window'], function ($, Handlebars, hh) {

    hh.init();

    var context = {
        people: [{
            firstName: "Yehuda",
            lastName: "Katz"
        }, {
            firstName: "Carl",
            lastName: "Lerche"
        }, {
            firstName: "Alan",
            lastName: "Johnson"
        }]
    };

    var x = hh.getTemplate('test');
    $('#container2').html(x(context));
    var x = hh.getTemplate('test');
    $('#container3').html(x(context));

    var popupNotification = $("#popupNotification").kendoNotification({
        position: {
            top: 20,
            right: 20
        }
    }).data("kendoNotification");

    window.setInterval(function () {
        var d = new Date();
        popupNotification.show(kendo.toString(d, 'HH:MM:ss.') + kendo.toString(d.getMilliseconds(), "000"), "error");
    }, 7000);

    $("#window").kendoWindow({
        width: "500px",
        modal: true,
        resizable: false,
        actions: ["Close"],
        title: "About Josef Hoffmann",
        visible: false
    }).data("kendoWindow").center().open();

});


我的应用程序可以运行,但是有时会出现错误Uncaught ReferenceError: jQuery is not defined

requirejs具有指定垫片的选项,但不适用于KendoUI,可能是我做错了。

所以我的问题是:
如何配置requireJS以使其与KendoUI一起使用?

最佳答案

我得到了这个工作,我不得不更改垫片配置:

shim: {
    'jQuery': {
        exports: '$'
    },
    'underscore': {
        exports: '_'
    },
    'handlebars': {
        exports: 'Handlebars'
    },
    "kendo/kendo.core": {
        deps: ["jQuery"]
    }
}


kendo.core取决于jQuery,因此我问题中的代码这一部分引起了错误。

09-30 20:44