/ / Require.jsモジュールとして、Marionette EventAggregatorを正しく設定するにはどうすればよいですか-Backbone.js、Requirejs、Marionette

Marionette EventAggregatorをRequire.jsモジュールとして正しく設定するには - backbone.js、requirejs、marionette

としてベント/ EventAggregatorを設定しようとしています別のRequire.jsモジュール。私はMarionette 1.0.2(1.0.0以前のレガシーバージョンとは異なる実装を持っていると信じています)をwreqrを含めて使用しています:このコードはbackbone.marionette.jsからのものです:

        // Event Aggregator
// ----------------
// A pub-sub object that can be used to decouple various parts
// of an application through event-driven architecture.

Wreqr.EventAggregator = (function(Backbone, _){
"use strict";
var EA = function(){};

// Copy the `extend` function used by Backbone"s classes
EA.extend = Backbone.Model.extend;

// Copy the basic Backbone.Events on to the event aggregator
_.extend(EA.prototype, Backbone.Events);

return EA;
})(Backbone, _);

vent.jsモジュールをセットアップするとき、何をすべきですか?このようなもの:-

define(["marionette"],function(Marionette){
return new Marionette.EventAggregator();
})

また、require configには、backbone.wreqr.jsを明示的に含めるべきですか?または、マリオネットファイル(上記のスニペットを参照)だけで十分ですか?

参考のためにここに私のapp.jsです:-

require.config({

paths : {
backbone : "lib/backbone",
underscore : "lib/underscore",
jquery : "lib/jquery",
marionette : "lib/backbone.marionette",
"backbone.wreqr" : "lib/backbone.wreqr",
text : "lib/text",
templates : "../templates"

},
shim : {
jquery : {
exports : "jQuery"
},
underscore : {
exports : "_"
},
backbone : {
deps : ["jquery", "underscore"],
exports : "Backbone"
},
marionette : {
deps : ["jquery", "underscore", "backbone"],
exports : "Marionette"
},
"backbone.wreqr" : {
deps : ["backbone", "marionette", "underscore"],
exports : "Wreqr"
}
}
})

require(
["jquery",
"underscore",
"backbone",
"marionette",
"backbone.wreqr",
"shell/shellapp"
],
function($, _, Backbone, Marionette, Wreqr, ShellApp) {
$(function() {
//new ShellApp();
var shell = ShellApp;
shell.start();
trace("shell: "+shell);
});
}
);

すべてが大歓迎です!

どうもありがとう

サム

_______</ strong>****更新

Paulのおかげで、vent.jsを機能させる方法を見つけました。参考までに、設定でwreqrファイルを個別にインポートする必要はありませんでした。 vent.jsコードは次のとおりです。

define(["backbone", "marionette"],function(Backbone, Marionette){
return new Backbone.Wreqr.EventAggregator();
});

回答:

回答№1は6

これは私のために働く.

require.config({
paths: {
backbone: "http://backbonejs.org/backbone",
underscore: "http://underscorejs.org/underscore",
jquery: "http://code.jquery.com/jquery-1.9.1",
marionette: "http://marionettejs.com/downloads/backbone.marionette"
},
shim: {
jquery: {
exports: "jQuery"
},
underscore: {
exports: "_"
},
backbone: {
deps: ["jquery", "underscore"],
exports: "Backbone"
},
marionette: {
deps: ["jquery", "underscore", "backbone"],
exports: "Marionette"
}
}
});

require(["backbone", "marionette"], function (Backbone, Marionette) {
console.log(Backbone.Wreqr.EventAggregator);
var ea = new Backbone.Wreqr.EventAggregator();
console.log(ea);
});