[英]starting marionette modules with requirejs
There is something I don't really understand about using requirejs with marionettejs. 关于将requirejs与marionettejs一起使用,我不太了解。
So I'm trying to use marionette module with requirejs. 所以我试图将木偶模块与requirejs一起使用。
//app.js
define(["marionette"], function(Marionette){
var App = new Marionette.Application();
App.startSubApp = function(appName, args) {...}
App.on("initialize:after", function(){
require(["app/module1"], function () {
Backbone.history.start();
App.startSubApp("module1");
});
}
});
//module1.js
define(["app"], function(App){
App.module("module1", function(Module1, App, Backbone, Marionette, $, _){
Module1.startWithParent = false;
Module1.onStart = function(){
console.log("starting module1");
};
}
});
The problem is that the onStart handler was never triggered because inside App.startSubApp, module1 is already instantiated. 问题在于onStart处理程序从未触发过,因为在App.startSubApp内部,module1已被实例化。
I managed to fix the problem by calling startSubApp in module1.js instead: 我设法通过在module1.js中调用startSubApp来解决此问题:
//app.js
define(["marionette" , 'vent'], function(Marionette, vent){
var App = new Marionette.Application();
App.startSubApp = function(appName, args) {...}
App.on("initialize:after", function(){
require(["app/module1"], function () {
Backbone.history.start();
vent.trigger("start:module1");
});
}
});
//module1.js
define(["app",'vent'], function(App, vent){
App.module("module1", function(Module1, App, Backbone, Marionette, $, _){
Module1.startWithParent = false;
Module1.onStart = function(){
console.log("starting module1");
};
}
vent.on('start:module1', function(){
App.startSubApp("module1");
});
});
I"m fairly new to both requirejs and marionettejs so can someone explain to me the reason for this behavior? 我对requirejs和marionettejs都是陌生的,所以有人可以向我解释这种行为的原因吗?
如果您尝试在应用程序(或模块)启动时运行代码,则两者都具有可使用app.addInitializer()和module.addInitializer()添加的初始化程序回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.