我已经开始了一个新的主干,牵线木偶并且需要使用2.2版本的项目(我之前使用的是1.8)。似乎已经发生了很大变化。我在浏览器加载木偶时遇到错误:
Uncaught TypeError: Cannot read property 'ChildViewContainer' of undefined
这是我的main.js文件:
require.config({
baseURL: 'scripts',
paths: {
"jquery": "lib/jquery",
"underscore": "lib/underscore",
"backbone": "lib/backbone",
"marionette": 'lib/backbone.marionette',
"templates": "../templates",
"text": "lib/text"
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
marionette: {
deps: ['jquery', 'underscore', 'backbone'],
exports: 'Marionette'
},
waitSeconds: 15
}
});
require([ "app", "marionette"], function(App, marionette) {
App.start();
});
这是我的app.js文件:
define(["marionette", "router"], function (Marionette, AppRouter) {
var MyApp = Marionette.Application.extend({
initialize: function(options) {
console.log("options.container");
}
});
var MyApp = new MyApp({container: '#page'});
MyApp.addInitializer(function (options) {
MyApp.Router = new AppRouter();
Backbone.history.start();
});
// export the app from this module
return MyApp;
});
答案 0 :(得分:-1)
看看你的backbone.js文件。它是空的。从http://backbonejs.org/下载backbone.js并替换它。
答案 1 :(得分:-1)
我自己也遇到了同样的问题。问题是页面上包含了Marionette的多个实例。 (我在cdnjs的页面上错误地为marionette设置了一个脚本标签,并尝试通过require在本地包含静态文件)。删除对外部JS文件的引用帮助了我......