我正在尝试加载与Angular的Kendo UI All 集成,以便能够使用其内置的UI窗口小部件指令。
我使用以下命令安装了软件包:jspm install kendo-ui
在某个文件中,我正在导入 jQuery , Angular 和 Kendo 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"
错误消息。
似乎Kendo UI Core代码在Angular出现之前执行,或者我认为是这样,因为Kendo UI的文档说明:
要激活Angular绑定,请在加载前加载angular.js 剑道UI。因此,请按照下面显示的顺序加载脚本。
此外,我已尝试修复向 config.js 添加meta
属性的问题:
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"
...
好像问题根本不是加载订单:没有使用我昨天做的试用错误(关于map
和meta
的事情),错误"Failed to instantiate module kendo.directives"
不应该发生因为包正在加载kendo.ui.core
,其中已包含模块kendo.directives
。
另一方面,我试图在所谓的文件的未明确版本上设置一个断点,结果是定义Angular kendo.directives
模块的代码永远不会被执行,但是其他一些部分源代码,当我设置一个断点时,它被命中并且Angular存在于全局范围内。
答案 0 :(得分:0)
最后我设法解决了这个问题。
在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"
和meta
手动添加map
并强制"kendo-ui"
依赖"kendo.ui.core"
...
我仍然认为这不是最终的解决方案。 I've already posted an issue on Kendo UI GitHub repository让事情向正确的方向发展。