关于 kendo ui 和 requirejs 的文档似乎遗漏了一些东西。
他们告诉我如何使用 kendo.web.min,其中包含所有内容:
http://www.kendoui.com/blogs/teamblog/posts/13-05-08/requirejs-fundamentals.aspx
(搜索关键字“垫片”)
但我对添加大 2MB kendo.web.min 脚本不感兴趣,我只想填充
kendo.grid.min 但该文件依赖于 kendo.data.min ,而后者又具有依赖关系
到kendo.core.min。
我如何告诉 requirejs 在加载 kendo.grid.min 之前和加载 jquery 之后也加载 kendo.data.min 和 kendo.core.min 。我只是猜想这将是正确的顺序。
这是我从上面的 telerik 链接中尝试过的:
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-2.3.0',
'jquery': '../Scripts/jquery-2.0.3',
'kendoGrid': '../Scripts//kendo.grid.min',
},
shim: {
"kendoGrid": {
deps: ["jquery"]
}
}
});
定义 kendo.data 和 kendo.core 等 kendo 依赖项的正确方法是什么?
目前,我在 systems.js 中的 durandal 中收到应用程序启动异常:
“无法加载组合模块(viewmodels/DocumentBrowser)。详细信息:无法‘访问’未定义或空引用的属性“jQuery”。
我知道这个错误与 kendo 没有直接关系,但是自从我在 DocumentBrowser 模块中引入了 kendo ui 和 requirejs 后,我得到了这个异常!
UPDATE
根据 CodingWhitSpike 的建议,我更改了我的 requirejs 配置:
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-2.3.0',
'jquery': '../Scripts/jquery-2.0.3',
'moment': '../Scripts/moment',
k: "../Scripts/kendo"
}
});
define(['durandal/app', 'plugins/dialog', 'knockout', 'services/dataservice', 'plugins/router', 'moment', 'k/kendo.grid.min'],
function (app, dialog, ko, dataservice, router, moment, kendoGrid) {
$("#grid").kendoGrid(...); => kendoGrid is instantiated and it works :)
});