Javascript 提线木偶批准人不使用cordova,但常规布线工作?
我在基于web的应用程序中使用木偶appRouter已经有一段时间了,现在我使用的是我为cordova应用程序创建的同一个样板,木偶appRouter不会在控制器上触发事件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
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事件?哦,是的,在那之前我不会初始化我的应用程序。