2

kendo ui と requirejs のドキュメントには、いくつかのものが欠けているようです。

彼らは、すべてが含まれている kendo.web.min の使用方法を教えてくれます。

http://www.kendoui.c​​om/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 :)

});
4

1 に答える 1

4

これは、 http: //docs.kendoui.c​​om/getting-started/using-kendo-with/using-kendo-with-requirejs の公式剣道ドキュメントから取得したものです。

<!-- first, load RequireJS -->
<script src="require.js"></script>

<!-- configure RequireJS with two logical paths:
     - "app/" will be used for your files
     - "k/" will be for Kendo UI modules -->

<script>
  requirejs.config({
      paths: {
          app: "/path/to/your/files",
          k: "http://cdn.kendostatic.com/VERSION/js"
      }
  });

  require([
      "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js",
      "app/foo",
      "app/bar",
      "k/kendo.menu.min",
      "k/kendo.grid.min"
  ], initApp);

  function initApp() {
     // main entry point of your application
  }
</script>

剣道がモジュールの依存関係を正しく設定したと仮定すると k: "http://cdn.kendostatic.com/VERSION/js、モジュールディレクトリ (個々のモジュールではなく) を指すようなパスを設定し、k/kendo.grid.min必要なすべてのモジュールを使用します。

于 2013-09-07T09:18:23.300 に答える