0

我有一个基本的 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()

但是,params在调用 active 时未定义。我正在导航到/#/sources/soemthing. 也许堆栈中的糖有些东西我不明白,但我看到的例子似乎只是以这种方式工作。谁能告诉我缺少什么?

4

1 回答 1

2

因此,显然堆栈总是在切换到其他控制器之一之前不带参数地初始化默认控制器,即使您直接导航到 /#/route/parameter 也是如此。添加一个什么都不做的默认控制器后,这个问题就消失了。

class Main extends Spine.Stack
  el: "#main"

  controllers:
    home: Home
    sources: Sources

  default: 'home'

  routes:
    '/': 'home'
    '/sources/:zooniverse_id': 'sources'

PS 如果您想在 SO 上获得 Spine 帮助,请不要这样做。转到 SpineJS 谷歌组:https ://groups.google.com/forum/#!forum/spinejs

于 2012-09-12T20:42:05.973 回答