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。也许堆栈中的糖有一些我不理解的地方,但我看到的例子似乎就是这样。有人能告诉我少了什么吗?

因此,很明显,在切换到其他控制器之前,堆栈总是在不带参数的情况下初始化默认控制器,即使您直接导航到/#/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

最新更新