kendo ui と requirejs のドキュメントには、いくつかのものが欠けているようです。
彼らは、すべてが含まれている kendo.web.min の使用方法を教えてくれます。
http://www.kendoui.com/blogs/teamblog/posts/13-05-08/requirejs-fundamentals.aspx
(キーワード「shim」で検索)
しかし、2MB の大きな kendo.web.min スクリプトを追加することに興味はありません。
kendo.grid.min ですが、このファイルには kendo.data.min への依存関係があり、これもまた依存関係があります
kendo.core.minへ。
kendo.grid.min がロードされる前と jquery がロードされた後に、requirejs に kendo.data.min と kendo.core.min もロードするように指示するにはどうすればよいですか。これが正しい順序になると思います。
これは、上記のテレリック リンクから試したものです。
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 のような剣道の依存関係を定義する正しい方法は何ですか?
現時点では、systems.js の durandal からアプリケーションの起動時に例外が発生しています。
「構成されたモジュール (viewmodels/DocumentBrowser) の読み込みに失敗しました。詳細: 未定義または null 参照のプロパティ \"jQuery\" に「アクセス」できません。
このエラーが剣道に関するものではないことはわかっていますが、DocumentBrowser モジュールで requirejs を使用して kendo ui を導入したため、この例外が発生しました。
アップデート
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 :)
});