cl0*_*k3r 2 javascript coffeescript backbone.js
这是我的Coffescript Router类:
class App.Router extends Backbone.Router
initialize: ->
console.log 'Router.init'
@on 'all', ->
console.info 'route changed'
routes:
'': 'home'
'test': 'test'
home: ->
console.log 'home routed'
test: ->
console.log 'test routed'
Run Code Online (Sandbox Code Playgroud)
当我重新加载我的localhost页面时,"@ all'all'"回调似乎触发了两次(我的firebug上的double console.info ...)
这是我的firebug输出:
App.init
Session.init
Router.init
home routed
route changed
route changed
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,"路径已更改"输出位于我的主路线之后......
最后这是我的引导代码(使用我的App命名空间......),我放置了history.start
App =
init: ->
console.log 'App.init'
@session = new App.Model.Session
@router = new App.Router
# @userPanel = new App.View.UserPanel
Backbone.history.start pushState: true
Model: {}
View: {}
Run Code Online (Sandbox Code Playgroud)
该all事件是一种特殊的事件侦听器语法,它捕获由源对象触发的任何类型的所有事件.我猜其他事件实际上根本不是一个route事件,而是一个route:name事件.
要捕获所有路线,只需使用该route事件:
@on 'route', ->
console.info 'route changed'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |