Marionette v2.2升级错误 - 无法读取未定义的属性'ChildViewContainer'

时间:2014-10-12 14:02:58

标签: javascript backbone.js requirejs marionette

我已经开始了一个新的主干,牵线木偶并且需要使用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;
});

2 个答案:

答案 0 :(得分:-1)

看看你的backbone.js文件。它是空的。从http://backbonejs.org/下载backbone.js并替换它。

答案 1 :(得分:-1)

我自己也遇到了同样的问题。问题是页面上包含了Marionette的多个实例。 (我在cdnjs的页面上错误地为marionette设置了一个脚本标签,并尝试通过require在本地包含静态文件)。删除对外部JS文件的引用帮助了我......