首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS和KendoUI - Shim jQuery依赖项

RequireJS和KendoUI - Shim jQuery依赖项
EN

Stack Overflow用户
提问于 2014-05-08 14:40:26
回答 1查看 1.2K关注 0票数 2

我正在努力学习KendoUI和RequireJS。

我创建了一个简单的应用程序,它在加载时显示窗口。

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

代码语言:javascript
复制
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"]
      }
    }
});

我的主语是:

代码语言:javascript
复制
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可以选择指定shim,但它不适用于KendoUI,可能是我做错了什么。

所以我的问题是:

如何配置requireJS使其与KendoUI一起工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 06:13:38

我完成了这个任务,我不得不更改shim:

代码语言:javascript
复制
shim: {
    'jQuery': {
        exports: '$'
    },
    'underscore': {
        exports: '_'
    },
    'handlebars': {
        exports: 'Handlebars'
    },
    "kendo/kendo.core": {
        deps: ["jQuery"]
    }
}

kendo.core依赖于jQuery,所以我问题中的这部分代码导致了错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23545011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档