因此,我对Aurelia和JavaScript导入语法有点陌生,并且正在开发需要jQuery UIdraggable
和的应用程序droppable
。由于这些小部件无法在移动设备上运行,因此我需要使用jQuery UI Touch Punch库。
我遇到的问题是以下控制台错误:
Uncaught TypeError: Cannot read property 'mouse' of undefined
当在jQuery UI之前加载jQuery UI Touch Punch库时,显然会出现它。
这是我的aurelia.json
文件设置方式:
"dependencies": [
// ....
{
"name": "jquery",
"path": "../node_modules/jquery/dist/",
"main": "jquery"
},
{
"name": "jquery-ui",
"path": "../node_modules/jquery-ui-dist/jquery-ui",
"deps": ["jquery"]
},
{
"name": "touch-punch",
"path": "../node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch",
"deps": ["jquery-ui"]
}
]
我的视图模型中有这些导入:
import 'jquery-ui';
import 'touch-punch';
由于某些原因,一切正常,但我仍然遇到该控制台错误。
我如何确定jQuery Touch Punch库是否已在jQuery UI之前加载,如果可以,我如何确定在它之后加载。
似乎正在发生的事情是,模块加载器正在同时导入两个脚本并touch-punch
赢得了比赛,因此,它首先被加载。我相信这个问题是Aurelia无法控制的。
尽管如此,jquery-ui-touch-punch
它并不是为模块化系统而设计的。导入它的最佳方法是使用<script>
标签或将其添加到包中。考虑到这jquery-ui-touch-punch
取决于jquery-ui
哪个jquery
,变通办法是将所有这些都放在前面。像这样:
"name": "vendor-bundle.js",
"prepend": [
"node_modules/bluebird/js/browser/bluebird.core.js",
"node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js",
"node_modules/jquery/dist/jquery.js",
"node_modules/jquery-ui-dist/jquery-ui.js",
"node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.js",
"node_modules/requirejs/require.js"
],
"dependencies": [
...
]
然后,从中删除它们dependencies
并删除import
语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句