【发布时间】:2013-07-15 02:18:30
【问题描述】:
我无法在我的 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 事件来测试它?
【问题讨论】:
-
“不触发”是指如果你去地址 /index.html#users listUsers 不会被调用?
-
我的意思是“listUsers”(字符串)没有被输出到控制台。
-
是的,但是您是否使用浏览器访问了该路径?因为在你的代码中没有设置默认路由。
-
我是在浏览器中手动输入的。但是,我最终回滚到上一个版本并重建,现在它可以工作了。感谢上帝的版本控制。
标签: javascript backbone.js coffeescript marionette backbone-routing