我对脊柱很新,现在我正在尝试设置我的第一个小应用程序。
我有一个帖子控制器,用于定义2条路线: 一个显示特定帖子,一个显示所有帖子
class Posts extends Spine.Controller
className: 'posts'
constructor: ->
super
@main = new Main
@routes
'/post/:id': (params) ->
@main.show.active(params)
'/posts': ->
@main.show_all.active()
@append @main
到目前为止工作...... 然后我有一个posts.main控制器 我在哪里定义我的show和show_all控制器
Post = require('models/post')
class Show extends Spine.Controller
className: 'show'
constructor: ->
super
@active @load
load: (params) =>
@item = Post.find(params.id)
@html require('views/post')(@item)
class Show_all extends Spine.Controller
className: 'show_all'
events:
"click .items" : "click"
constructor: ->
super
@active @load
load: =>
@item = Post.all()
@html require('views/posts')(@item)
change: (postId) =>
@navigate("/post", postId)
click: (event) ->
@change(event.target.id)
class Main extends Spine.Stack
className: 'main Stack'
controllers:
show: Show
show_all : Show_all
module.exports = Main
目前还在工作 当我到达时:http://localhost:9294/# 我看到了我的帖子列表。 现在我的目标是:点击帖子我想去/#/ post / [ID] 这也是有效的 我不会只看到所选帖子的信息,而是始终在帖子详细信息下获得所有可用帖子的列表。 当我点击F5时,所有帖子的列表都消失了......
为什么会这样?我该怎么办才能看到与帖子相关的信息?
答案 0 :(得分:2)
所以您遇到的问题是,不仅会显示帖子详细信息,还会显示完整的帖子列表?
如果是这样,你是否添加了必要的CSS?
.stack > *:not(.active) { display: none }
Spine堆栈管理多个控制器,并将“活动”类添加到应该处于活动状态的控制器元素中。
所以在你的DOM中你应该看到2个控制器元素都有一个堆栈类,只有一个有一个活动类。
CSS确保隐藏所有非活动控制器。