Javascript 提线木偶批准人不使用cordova,但常规布线工作?

Javascript 提线木偶批准人不使用cordova,但常规布线工作?,javascript,cordova,backbone.js,marionette,Javascript,Cordova,Backbone.js,Marionette,我在基于web的应用程序中使用木偶appRouter已经有一段时间了,现在我使用的是我为cordova应用程序创建的同一个样板,木偶appRouter不会在控制器上触发事件 App.core.vent.bind('app:start', function(options){ App.core.vent.trigger('app:log', 'App: Starting'); if (Backbone.history) { App.controller = new

我在基于web的应用程序中使用木偶appRouter已经有一段时间了,现在我使用的是我为cordova应用程序创建的同一个样板,木偶appRouter不会在控制器上触发事件

App.core.vent.bind('app:start', function(options){
    App.core.vent.trigger('app:log', 'App: Starting');
    if (Backbone.history) {
        App.controller = new Controller();
        App.router = new Router({ controller: App.controller });
        App.core.vent.trigger('app:log', 'App: Backbone.history starting');
        Backbone.history.start();
    } 

    App.core.vent.trigger('app:log', 'App: Done starting and running!');
});
您可以看到,我将控制器传递到路由器,然后调用
Backbone.history.start()这在我基于web的应用程序中运行良好

module.exports = Controller = Marionette.Controller.extend({

    initialize: function(options) {

        alert('Controller initialize called');
        //this.renderView(view);

    },

    mainApp: function() {

        alert('hit main app');

    }

});
在路由器上

module.exports = Router = Marionette.AppRouter.extend({
    appRoutes: {
        ''            : 'mainApp'
    }
});
通常这会在控制器上触发
mainApp
,但使用cordova时不会发生任何事情

然而,当我使用基本路由器时,它就会触发

module.exports = Router = Marionette.AppRouter.extend({
    routes: {
        ''            : 'mainApp'
    },
    mainApp: function() {

        alert('main app hit');

    }
});

你知道为什么吗?由于应用程序文件路径不同于标准url或其他内容,木偶的反应会有所不同吗?

在初始化之前,你是否尝试过等待deviceready事件?哦,是的,在那之前我不会初始化我的应用程序。