0

我无法在导航到我的Backbone.js应用的页面时触发事件。首先,相关代码:访问页面时骨干/木偶路由器事件未触发

* users_app.js.coffee *

@Demo.module "UsersApp", (UsersApp, App, Backbone, Marionette, $, _) -> 

    class UsersApp.Router extends Backbone.Marionette.AppRouter 
     appRoutes: 
      "users" : "listUsers" 

    UsersApp.API = 
     listUsers: -> 
      console.log "listUsers" 

    App.addInitializer -> 
     new UsersApp.Router 
      controller: UsersApp.API 

app.js.coffee

@Demo = do(Backbone, Marionette) -> 

    App = new Marionette.Application 

    App.on "initialize:before", (options) -> 
    @currentUser = App.request "set:current:user", options.currentUser 

    App.reqres.setHandler "get:current:user", -> 
    App.currentUser 

    App.addRegions 
    headerRegion: "#header-region" 
    mainRegion: "#main-region" 
    footerRegion: "#footer-region" 

    App.addInitializer -> 
    App.module("HeaderApp").start() 
    App.module("FooterApp").start() 

    App.on "initialize:after", -> 
    if Backbone.history 
     Backbone.history.start 

    App 

我已经在控制台中测试了它,我可以打电话手动功能listUsers,使用简单的Demo.UsersApp.API.listUsers()但是,listUsers在页面加载时未触发。这种实现似乎也符合Marionette documentation

有什么想法?有没有一种简单的方法可以触发控制台中的appRoutes事件来测试它?

+0

随着“不点火”你的意思是,如果你去到地址/index.html#users listUsers不叫? – Ingro

+0

我的意思是“listUsers”(字符串)没有被输出到控制台。 – mattmattmatt

+0

确实如此,但是您是否使用浏览器触及了该路线?因为在你的代码中没有设置默认路由。 – Ingro

回答

0

您可能需要指定在appRouter控制器:

{ 
    controller: UsersApp.API 
}