Marionette AppRouter没有开火

时间:2013-04-05 17:42:12

标签: routing routes router marionette

我正在重构我的应用程序,现在我的路由器不会响应。我觉得它可能与事件的顺序有关。但那是猜测。有什么想法吗?

init.js

define(function(require) {
    'use strict';
    var app = (require('app')()),
        Backbone = require('backbone');
    app.modules = {};
    require('modules/main/main');
    app.on('initialize:after', function() {
        if (Backbone.history) {
            Backbone.history.start();
        }
    });
    app.start();
});

模块/主/ main.js

define(function(require) {
    'use strict';
    var app = (require('app')()),
        MainController = require('widgets/main/controller');
    app.addInitializer(function() {
        app.modules.main = new MainController();
    });
});

窗口小部件/主/ controller.js

define(function(require) {
    'use strict';
    var app = (require('app')()),
        Marionette = require('marionette'),
        View = require('./view');
    return Marionette.Controller.extend({
        initialize: function(options) {
            this.router = new Marionette.AppRouter.extend({
                appRoutes: {'apps': 'showApp'},
                controller: this
            });
        },
        showApp: function() {
            console.log('route fired!');
        }
    });
});

1 个答案:

答案 0 :(得分:0)

我认为许多异步require请求中的问题。 我试图在示例中更改像main.js这样的文件。

`

define(['app','widgets/main/controller'], function(App, Ctr){

    App.addInitializer(function() {
        app.modules.main = new Ctr;
    });

});

`