我有一个基本的Spine/coffeescript应用程序,我正试图通过查看其他应用程序的示例,从我设置的路线中获取参数。以下是基本堆栈:
class Main extends Spine.Stack
el: "#main"
controllers:
sources: Sources
default: 'sources'
routes:
'/sources/:id': 'sources'
这是来源控制器:
class Sources extends Spine.Controller
el: '#something'
constructor: ->
super
active: (params) ->
super
@id = params.id
@refresh()
@render()
但是,当调用active时,params
是未定义的。我正在导航到/#/sources/soemthing
。也许堆栈中的糖有一些我不理解的地方,但我看到的例子似乎就是这样。有人能告诉我少了什么吗?
因此,很明显,在切换到其他控制器之前,堆栈总是在不带参数的情况下初始化默认控制器,即使您直接导航到/#/route/parameter。在添加了一个什么都不做的默认控制器后,这个问题就消失了。
class Main extends Spine.Stack
el: "#main"
controllers:
home: Home
sources: Sources
default: 'home'
routes:
'/': 'home'
'/sources/:zooniverse_id': 'sources'
附言:如果你想在SO上获得Spine的帮助,不要。转到SpineJS谷歌组:https://groups.google.com/forum/#!论坛/spinejs