我正在使用durandal创建一个应用程序,这意味着我使用的是requirejs。我决定使用强大的knockout-sortable插件。事实证明,它在内部使用了jquery-ui特性,这很不错。我还在我的应用程序中定义了整个jquery-ui包,因此在我的requirejs配置中,它显示为
"jqueryui": "../Scripts/jquery-ui-1.10.3.custom",更重要的是,插件作者正在使用AMD加载获取jquery.ui.sortable,这是问题所在。jquery-ui似乎没有用requirejs来定义自己,无论是整个包还是单个模块。
我需要分别从jquery-ui导入任何模块吗?对于requirejs配置中的每个定义路径,它都是显式可见的,还是有一种方法可以告诉requirejs插件在jquery-ui中已经有了这个jquery.ui.sortable模块?
发布于 2014-02-17 19:16:28
您应该能够使用path请求配置设置一个简单的别名。
paths: {
'jquery.ui.sortable': 'jquery-ui'
}或者如果不起作用,您可以使用map配置
map: {
'*': {
'jquery.ui.sortable': 'jquery-ui'
}
}或者在使用map时,您甚至只能为该插件设置别名。
map: {
'THE-JQUERY-UI-PLUGIN-ID': {
'jquery.ui.sortable': 'jquery-ui'
}
}最后一个插件使其成为whevener,这个插件进行require("jquery.ui.sortable")调用,它实际上引入了jquery-ui模块,您知道它已经内置了可排序的功能。
还有一个我非常喜欢使用的jquery-ui-amd项目。该项目将所有jquery-ui模块转换为单独的https://github.com/jrburke/jqueryui-amd模块。您可以将它用于更简单和更模块化的项目集成。然而,即使这样,您也需要一些别名,因为您的插件需要jquery.ui.sortable,但在jquery-ui-amd中,id将是jquery-ui/sortable。
https://stackoverflow.com/questions/21835486
复制相似问题