如何避免使用骨干 - 依次,这是一个简单的博客主干应用,并带有与帖子有关的评论



骨干关系对我来说太混乱了,我似乎无法调试它。我试图避免使用此资产。

我的骨干应用程序中有两个集合。

Voice.Collections.PostsVoice.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过滤我的评论集合(作为我的评论 - 帖子关系密钥,post_id),因此基本上是" post/post/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需要进行Intialection。我只是不确定该怎么做。我还将为评论集合作为从另一个视图事件触发的视图而定。

编辑:

我必须使用骨干。骨干。逐渐产生不良气味。

我的咖啡本有点生锈,所以我不记得确切的:

@comCollection = @comCollection.where ->
                  @model.get('post_id') = id

在正常的JavaScript中翻译。但是,如果使用正确,它绝对应该可以工作,所以也许如果您尝试了更简单的语法:

this.comCollection = this.comCollection.where({post_id: id});

您可能取得更好的成功?如果没有,您可能需要访问调试器,并在打电话后检查@comCollection实际上有什么。

相关内容

  • 没有找到相关文章

最新更新