【问题标题】:Failed to instantiate module kendo.directives using JSPM无法使用 JSPM 实例化模块 kendo.directives
【发布时间】:2016-02-04 12:13:28
【问题描述】:

我正在尝试加载 Kendo UI All 与 Angular 的集成,以便能够使用其内置的 UI 小部件指令。

我已使用以下命令安装了该软件包:jspm install kendo-ui

在某个文件中,我正在导入 jQueryAngularKendo UI

import jquery from "jquery";
import ng from "angular";
import kendoUi from "kendo-ui";

angular.module("common", [
    "kendo.directives"
]);

我的config.js 如下所示:

...
 map: {
    "kendo-ui": "github:kendo-labs/bower-kendo-ui@2016.1.125"
 }
...

...当我加载应用程序时,我会收到整个 "Failed to instantiate module kendo.directives" 错误消息。

似乎在 Angular 出现之前执行了 Kendo UI Core 代码,或者我认为是这样,因为 Kendo UI 的文档指出:

要激活 Angular 绑定,请在加载之前加载 angular.js 剑道用户界面。因此,请按如下所示的顺序加载脚本。

此外,我已经尝试解决将meta 属性添加到config.js 的问题:

meta: {
    'kendo-angular': {
        exports: 'kendo',
        deps: [
            "jquery",
            "angular",
            "kendo-ui"
        ]
    }
}

...以及map 的条目:

"kendo-angular": "github:kendo-labs/bower-kendo-ui@2016.1.125/js/kendo.angular.min"

现在似乎 kendo.angular.min.js 已加载,但它抛出以下错误消息:"Cannot read property 'jQuery' of undefined"...

更新

似乎问题根本不是加载顺序:不使用我昨天做的试错(关于mapmeta 的事情),错误"Failed to instantiate module kendo.directives" 不应该发生,因为包正在加载kendo.ui.core,其中已经包含模块kendo.directives

另一方面,我试图在所谓的文件的未压缩版本上放置一个断点,结果是定义 Angular kendo.directives 模块的代码从未执行,但源代码的其他部分代码,当我设置断点时,它被命中并且 Angular 出现在全局范围内。

【问题讨论】:

    标签: javascript angularjs kendo-ui ecmascript-6 jspm


    【解决方案1】:

    我终于设法解决了这个问题。

    config.js

      ...
      meta: {
        "kendo-ui": {
            deps: ["kendo.ui.core"]
        },
        "kendo.ui.core": {
          "deps": [
            "angular"
          ]
        }
      }
      ...
      map: {
        "kendo-ui": "github:kendo-labs/bower-kendo-ui@2016.1.125",
        "kendo.ui.core": "github:kendo-labs/bower-kendo-ui@2016.1.125/src/js/kendo.ui.core"
      }
    

    在查看kendo.ui.core 源代码并尝试对其进行调试后,我发现他们的"kendo.ui.core" AMD 模块已定义但代码从未需要。因此,由"kendo.ui.core" AMD 模块分组的所有模块都不会被加载。

    这就是手动将"kendo.ui.core" 添加到metamap 并强制"kendo-ui" 依赖"kendo.ui.core" 的原因...

    我仍然认为这不是最终的解决方案。 I've already posted an issue on Kendo UI GitHub repository 让事情朝着正确的方向发展。

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2014-06-04
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多