访问页面时,Backbone / Marionette路由器事件不会触发

时间:2013-07-16 18:33:47

标签: javascript backbone.js coffeescript marionette backbone-routing

我无法在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事件进行测试?

1 个答案:

答案 0 :(得分:0)

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

{
    controller: UsersApp.API
}