我如何只显示我的牵线木偶系列中的一个项目并在它们之间导航

时间:2014-05-27 12:27:10

标签: marionette backbone-routing

我有路线

routes: { "pages/:id" :  "page"

         },
page: function (id) {                                                      
                    var pageView = new contentCollectionView({
                        collection: collection,
                        tagName: "div",
                        className: "pages"
                    });

                    pageView.close();
                    PAGE.content.show(pageView);

                },

但是,我想要做的只是显示我的集合中与我传递的id匹配的单个页面 - 我还希望能够从该页面导航到集合中的前一页和下一页。

那么 - 如何在渲染时将标识符传递给我的pageView,这样它只能处理集合中的一个项目(我相信我知道如何在集合循环中获取项目索引,但是如果你想展示一个这样的例子那就太好了)

1 个答案:

答案 0 :(得分:1)

根据您的要求,我建议渲染ItemView而不是CollectionView。 如果你有CollectionView你肯定有ItemView :) 并从你的集合中通过ID模型传递特殊信息。

所以你的代码看起来像这样:

page: function (id) {                                                      
    var pageView = new contentItemView({
        model: collection.get(id)
    });
    pageView.close();
    PAGE.content.show(pageView);
}

关于导航 - 您可以使用 方法检查集合中模型的索引来实现导航逻辑。如果您还需要保留浏览器导航(后退和前进按钮),则必须结帐Backbone.history