У меня есть две коллекции:Две коллекции отображаются в URL через железо: router?
var Books = new Meteor.Collection("books");
var Chapters = new Meteor.Collection("chapters");
Chapter
коллекция имеет propetry под названием bookId
. Поэтому в каждой главе есть книга, и каждая книга имеет много глав.
Это маршрутизатор:
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
Любая идея?
EDIT:
главы/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
В чем разница: '{{pathFor 'chapterPage'}}'? – alexchenco
'someChapter' должен был представлять любой доступный хелпер шаблона, который ссылается на действительный документ главы (с' _id' и 'bookId', чтобы правильно построить URL-адрес). '{{PathFor route =" chapterPage "}}' является правильным синтаксисом для самой последней версии 'iron: router'. Отредактировал мой ответ, чтобы прояснить это. – saimeunt