1
我有两个类别:通过铁在URL中显示两个集合:路由器?
var Books = new Meteor.Collection("books");
var Chapters = new Meteor.Collection("chapters");
的Chapter
集合有一个名为bookId
propetry。所以每章都有一本书,每本书都有很多章节。
这是路由器:
Router.map(function() {
this.route("bookList", {
path: "/",
data: function() {
return Books.find({});
}
});
this.route("bookPage", {
path: "/books/:_id",
data: function() {
return Books.findOne(this.params._id);
}
});
});
所以,现在当我打开一本书,我得到和URL,如:
http://localhost:3000/books/TS23MTKrdpja2tCwq
但现在我不知道如何修改代码,所以我可以打开一本书的章节,并最终得到一个URL:
http://localhost:3000/books/TS23MTKrdpja2tCwq/chapters/stwtwfd5tsrstfw
任何想法?
编辑:
章节/ chapter_page.js:
Template.chapterPage.helpers({
chapters: function() {
Chapters.find({
bookId: this._id
}, {
sort: {
position: 1
}
});
}
});
章节/ chapter_item.html:
{{#with chapter}}
<h4><a class="open-chapter" href="{{pathFor 'chapterPage'}}">{{title}}</a></h4>
{{/with}}
非常感谢。什么是“someChapter”?我如何做这项工作? – alexchenco 2014-10-02 13:50:14
刚刚做的有什么不同:'{{pathFor'chapterPage'}}'? – alexchenco 2014-10-02 13:56:12
'someChapter'旨在表示引用有效章节文档的任何模板可访问帮助器(带有'_id'和'bookId'设置为正确构造URL)。 '{{pathFor route =“chapterPage”}}'是最新版本'iron:router'的正确语法。编辑我的答案澄清这一点。 – saimeunt 2014-10-02 14:20:41