我有一个Book
和一个Chapter
集合。在名为book_list.html
的模板中,列出了所有each
项的book
语句:
<!-- book_list.html -->
<template name="bookList">
<div class="book-list">
{{#each books}}
{{> bookItem}}
{{/each}}
</div>
为了获得单词计数,我在book_item.js
中创建了一个帮助程序,它通过获取chapters
中的所有book
并返回所有单词的总和来工作。
一切都很好,直到我决定删除autopublish
包并使用publish
和subscribe
代替。现在的问题是,我不知道如何在book_list
中获取当前图书的ID,因为其ID不在网址中(book_list
是主页)。< / p>
这是代码(减去字数的代码):
//publications.js
Meteor.publish("books", function() {
return Books.find({});
});
Meteor.publish("chapters", function(bookId) {
return Chapters.find({
bookId: bookId
}, {
sort: {
position: 1
}
});
});
//route.js
Router.map(function() {
this.route("bookList", {
path: "/",
waitOn: function() {
return Meteor.subscribe("books");
},
data: function() {
return Books.find({});
}
});
});
//book_item.js
Template.bookItem.helpers({
words: function() {
var chapters = Chapters.find({
bookId: this._id
}).fetch();
// code for the word counter