Spine JS堆栈路由 - 未定义的params?

时间:2012-09-12 19:34:05

标签: coffeescript spine.js

我有一个基本的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。也许堆栈中的糖有些东西我不明白,但我看到的例子似乎只是以这种方式工作。谁能告诉我缺少什么?

1 个答案:

答案 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