簡體   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