繁体   English   中英

javascript-如何在requireJS和knockout-sortable中使用jQuery UI

[英]How to use jquery ui with requireJS and knockout-sortable?

我正在尝试使用requireJS在我的第一个单页javascript应用程序中管理依赖项。 以前从未使用过requireJS,所以我一直在尝试一些我认为已基本退出的工作。

我的项目使用基因敲除JS和一个称为基因敲除可排序的插件,该插件为jQuery用户界面“可排序”插件提供基因剔除绑定。 当我只加载jquery ui,knockout和其他不需要requireJS的东西时,一切正常。

我的要求main.js看起来像这样:

require.config({
    baseUrl: '/Scripts',
    paths: {
        jQuery: 'jquery-2.1.3',
        jQueryUI: 'jquery-ui-1.10.2',
        knockout: 'knockout-3.3.0',
        knockoutSortable: 'knockout-sortable',
        AppViewModel: 'app/AppViewModel'
    },
    shim: {
        "jQueryUI": {
            export: "$",
            deps: ['jQuery']
        },
        "knockoutSortable": {
            export: ["ko"],
            deps: ['jQuery','jQueryUI']
        },
    }
});


require(['jQuery', 'jQueryUI', 'knockoutSortable', 'AppViewModel'], function ($, ui, ko, AppViewModel) {
    ko.applyBindings(new AppViewModel());
});

但是我的JavaScript出现错误,指出:

GET http://localhost:8020/Scripts/jquery-ui/draggable.js 
require.js:166 Uncaught Error: Script error for: jquery-ui/draggable
http://requirejs.org/docs/errors.html#scripterror
require.js:1910 GET http://localhost:8020/Scripts/jquery-ui/sortable.js 
require.js:166 Uncaught Error: Script error for: jquery-ui/sortable
http://requirejs.org/docs/errors.html#scripterror

我猜想敲除可排序某种程度上需要依赖jquery.ui / sortable.js,但是该文件不存在,因为jquery-ui只是一个文件!

此页面https://learn.jquery.com/jquery-ui/environments/amd/也建议我将jquery ui文件组织成某种文件夹结构,但是我只有一个jquery ui文件,所以我没有想法该怎么做。

顺便说一句:我在Visual Studio中使用ASP.NET MVC 5,这就是为什么我的脚本位于“脚本”文件夹而不是“ JS”文件夹中的原因。 我已经使用NuGet将jquery,jquery ui和基因敲除更新到最新版本,并且我已经手动将基因敲除可排序升级到版本0.11,因为它是4天前发布的,尚未在nuget上提供。

有人知道这里发生了什么以及如何解决?

使用bower安装jquery-ui或从github下载它们时,可以获得AMD模块。

拥有所需文件后,请删除jquery-ui的shim配置,因为该配置仅应用于非AMD脚本。

Knockout-sortable也是AMD模块,因此您不需要任何填充程序配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM