我有路线
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,这样它只能处理集合中的一个项目(我相信我知道如何在集合循环中获取项目索引,但是如果你想展示一个这样的例子那就太好了)
答案 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