首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marionette.Application()没有initRegionManager方法

Marionette.Application()没有initRegionManager方法
EN

Stack Overflow用户
提问于 2013-06-28 18:02:54
回答 1查看 641关注 0票数 0

我正在与Backbone.Marionette和requireJS的一个奇怪的问题作斗争。

RquireJS的配置就像https://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs说的那样:

代码语言:javascript
复制
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:

代码语言:javascript
复制
require([
    'app'
],
function(App) {
    App.start();
}
);

和app.js:

代码语言:javascript
复制
define([
    'marionette'
],
function(Marionette) {
    var app = Marionette.Application();
    return app;
}
);

但是当我想启动一个应用程序时,我的控制台会说:

代码语言:javascript
复制
Uncaught TypeError: Object #<Object> has no method '_initRegionManager' 

到目前为止,我没有做什么特别的事情:

代码语言:javascript
复制
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-方法扩展应用程序的下划线。另外,在Marionette对象的原型列表中,我还可以看到该方法。

你知道我这里漏掉了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-29 04:12:29

您的require.config ({…})应该在main.js中,并且正如Ratweb_on指出的那样,在require.config中不应该有“deps:‘main’”。你可以按照这个example in here,忽略jquerymobile的东西。本质上,它执行初始化的方式与您的代码预期的方式相同。参见main.jsapp.js

已更新

在你的app.js中

代码语言:javascript
复制
var app = Marionette.Application();

应该是

代码语言:javascript
复制
var app = new Marionette.Application();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17362109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档