骨干关系对我来说太乱了,我似乎无法调试它。我试图避免使用此资产。
我的 Backbone 应用程序中有两个集合。
Voice.Collections.Posts
和Voice.Collections.Comments
这是我的路由器:
class Voice.Routers.Posts extends Backbone.Router
routes:
'': 'index'
initialize: ->
@collection = new Voice.Collections.Posts()
@collection.reset($('#container').data('posts').reverse())
index: ->
view = new Voice.Views.PostsIndex(collection: @collection)
$('#container').html(view.render().el)
我希望我的路由器有一个方法可以根据带有帖子 ID 的 url 过滤我的评论集合(作为我的评论 - 发布关系键,post_id),所以基本上“posts/12”(posts/:id)将调用一个函数 showComments : (id) -> 它将获取 id 并初始化评论集合,其中仅包含“post_id”等于 12(“id”)的评论。
我可以对我的路由器中的集合进行排序吗?像这样的东西?(这不起作用)
class Voice.Routers.Posts extends Backbone.Router
routes:
'': 'index'
'post/:id/': 'showComments'
initialize: ->
@collection = new Voice.Collections.Posts()
@collection.reset($('#container').data('posts').reverse())
index: ->
view = new Voice.Views.PostsIndex(collection: @collection)
$('#container').html(view.render().el)
showComments: (id) ->
@comCollection = new Voice.Views.Collections.Comments()
@comCollection = @comCollection.where ->
@model.get('post_id') = id
comview = new Voice.Views.CommentsIndex(collection: @comCollection)
$('#comContainer').html(comview.render().el)
但这不起作用,因为需要初始化 @comCollection。我只是不确定我应该怎么做。我还将满足于将评论集合呈现为来自另一个视图事件触发器的视图。感谢您的帮助。
编辑:
我必须使用 Backbone.navigate 吗?Backbone.navigate 会产生难闻的气味。