Backbone.js控制器中的默认路由?

Mar*_*sch 45 controller backbone.js

我想为我的backbone.js控制器设置一个默认路由.目前我这样做:

class DealSearchController extends Backbone.Controller
    routes:
        'list' : 'showListView'
        'photos' : 'showPhotoView'
        'map' : 'showMapView'

    initialize: ->
        ....        
            window.location.hash = 'list' if ! _.include( _.keys(@routes),(window.location.hash || '').replace('#',''))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

Bil*_*uer 86

尝试添加此附加路由作为控制器中的最后一个路由:

'*path':  'defaultRoute'
Run Code Online (Sandbox Code Playgroud)

然后像这样处理它:

defaultRoute: function(path) {
    this.showListView();
}
Run Code Online (Sandbox Code Playgroud)

这假定列表路由是您的首选默认值.这应该有效,因为Backbone.js将按顺序匹配路由,但始终匹配'splat'路由.