当嵌套堆栈响应路由时,如何使父堆栈处于活动状态

时间:2012-05-27 07:40:13

标签: spine.js

问题

我正在开发一个相当大的应用程序,我遇到了一个似乎很常见的问题。但我无法在脊柱组或SO处找到任何解决方案。

所以问题是,当嵌套堆栈响应路由时,如何确保父堆栈变为活动状态。这怎么解决了?

1 个答案:

答案 0 :(得分:0)

我设法通过在路由器的父控制器中使用@active来解决这个问题。这与this.active相同。这是我如何做到的一个例子......

Spine   = require('spine')
$       = Spine.$

# Controllers
Main      = require('controllers/posts/posts.main')
Nav       = require('controllers/navigation/navigation')

class Posts extends Spine.Controller
  className: 'posts top-controller'

  constructor: ->
    super
    @nav      = new Nav
    @main     = new Main

    @routes
      '/posts/new': ->
        @active()
        @nav.post.active()
        @main.new.active()

      '/posts/suggestion': ->
        @active()
        @nav.normal.active(title: "Groups near by")
        @main.matches.active()

      '/posts/:id': (params) ->
        @active()
        @nav.chat.active()
        @main.show.active(params)

    @append @nav, @main

module.exports = Posts