我正在为 Backbone.Marionette 和 requireJS 的一个奇怪问题而苦苦挣扎。
RquireJS 的配置类似于https://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs说:
require.config({
deps: ['main'],
paths : {
backbone : '../vendor/backbone.marionette/backbone',
underscore : '../vendor/underscore/underscore',
jquery : '../vendor/jquery/jquery',
marionette : '../vendor/backbone.marionette/backbone.marionette.min'
},
shim : {
jquery : {
exports : 'jQuery'
},
underscore : {
exports : '_'
},
backbone : {
deps : ['jquery', 'underscore'],
exports : 'Backbone'
},
marionette : {
deps : ['jquery', 'underscore', 'backbone'],
exports : 'Marionette'
}
}
});
main.js:
require([
'app'
],
function(App) {
App.start();
}
);
和 app.js:
define([
'marionette'
],
function(Marionette) {
var app = Marionette.Application();
return app;
}
);
但是当我想启动一个应用程序时,我的控制台说:
Uncaught TypeError: Object #<Object> has no method '_initRegionManager'
到目前为止,我没有做任何特别的事情:
define(
[
'marionette'
],
function(Marionette) {
"use strict";
var app = Marionette.Application();
// app.on('initialize:after', function() {
// console.log("Initialize:After");
// });
return app;
}
);
在 main.js(起点)中,我需要上面的代码并想启动它。但它在 Marionette.Application(); 失败了。
当我查看 marionette.js 时,我可以清楚地看到使用 _initRegionManager-Method 扩展应用程序的下划线。同样在木偶对象的原型列表中,我可以看到该方法。
任何想法我在这里缺少什么?