13

RequireJS を使用して、backbone.js アプリに jQueryUI を含めたいと考えています。私の index.html に含まれる main.js ファイルは次のとおりです。

require.config({
    paths: {
            jquery: 'libs/jquery/jquery-1.7.2.min',
            jqueryui: 'libs/jquery/jquery-ui-1.8.18.custom.min',
            underscore: 'libs/underscore/underscore-min',
            backbone: 'libs/backbone/backbone-optamd3-min',
            text: 'libs/require/text',
            templates: 'templates'
       }

});

require(['app'], function(App){
    App.start();
});

モデル/ビュー/ルーター ファイルごとに、次のように「定義」ブロックの先頭に「jquery」名前空間を含めます。

define([
    'jquery',
    'underscore',
    'backbone',
    'views/categoryview',
    'text!templates/category.html'
    ], function($, _, Backbone, CategoryView, categoryTemplate){
        // Here comes my code
});

ただし、これらのファイルでは jQueryUI を使用できませんでした。私のコードに何か問題がありますか? または、各「定義」ブロックに「jqueryui」も含める必要がありますか? しかし、「定義」ブロックに「jqueryui」を含めた場合、jquery との名前の競合を避けるために関数内でどのように名前を付ける必要がありますか?

4

4 に答える 4

3

かなり古い投稿。jrburke によって作成された jquery ui ファイルを AMD バージョンに変換するためのツールがあります。それが役に立つことを願っています!

于 2013-04-09T09:48:50.343 に答える
2

次のように、他のオブジェクト (jQuery UI など) にのみパッチを適用するすべてのファイルをメイン ファイルに含めることができます (jQuery UI の前に jQuery が読み込まれていることを確認する必要があります)。

require(['jquery', 'app', 'jqueryui'], function ($, App) { App.start(); });

別のアプローチは、すでに述べたように、すべてのモジュールに jQuery UI を含めることです。

依存関係を隠していますが、個人的には最初のアプローチを好みます。

于 2012-04-20T12:55:56.543 に答える