我有一个基本的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
。也许堆栈中的糖有些东西我不明白,但我看到的例子似乎只是以这种方式工作。谁能告诉我缺少什么?
答案 0 :(得分:2)
显然,即使你直接导航到/#/ route /参数,堆栈也会在切换到其他控制器之前始终初始化没有参数的默认控制器。添加一个什么都不做的默认控制器之后,这个问题就消失了。
class Main extends Spine.Stack
el: "#main"
controllers:
home: Home
sources: Sources
default: 'home'
routes:
'/': 'home'
'/sources/:zooniverse_id': 'sources'
P.S。如果你试图让Spine获得SO的帮助,那就不要了。转到SpineJS Google群组:https://groups.google.com/forum/#!forum/spinejs