1

こんにちは、「バックボーン」が必要になるたびにrequire jsでバックボーンとバックボーンリレーショナルをロードしようとしています。これが私のコードです:

main.js:

requirejs.config({
    paths: {
        'domReady': 'lib/require/domReady',
        'text': 'lib/require/text',
        'jquery': 'lib/jquery/jquery',
        'underscore': 'lib/underscore',
        'backbone': 'lib/backbone/loader',
        'relational': 'lib/backbone/relational',
        'iosync': 'lib/backbone/iosync',
        'iobind': 'lib/backbone/iobind'
    },
    shim: {
        'underscore': {
            exports: '_'
        },
        'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        'relational': {
            deps: ['backbone']
        },
        'iobind': {
            deps: ['backbone']
        },
        'iosync': {
            deps: ['backbone']
        }
    }
});

require([
    'domReady!',
    'jquery',
    'backbone',
    'models/application',
    'views/application'
], function () {
    // start the app
    var applicationModel = new BACON.models.Application();
    var applicationView = new BACON.views.Application({
        el: $('body'),
        model: applicationModel
    });
});

および lib/backbone/loader.js:

define([
    'lib/backbone/backbone',
    'relational',
    'iobind',
    'iosync'
]);

しかし、クロムでアプリを実行すると、次のようになります。

Uncaught Error: Load timeout for modules: relational,iobind,iosync

だから私は依存ループを持っているようです...これを機能させる方法はありますか、それともこれを達成する別の方法はありますか??

4

1 に答える 1

1

shim 構成で、 を参照するバックボーンへのリレーショナルの依存関係を追加しました。これによりlibs/backbone/loader、lib/backbone/loader.js のロード中にループが生成されます。

必要に応じて、バックボーンのパス構成を変更'lib/backbone/backbone'し、ローダーに別の名前付きパスを追加する必要があります。

于 2013-03-07T08:26:27.257 に答える