如果父URL的ID不在URL中,如何获取子集合?

时间:2014-11-17 15:16:12

标签: javascript meteor

我有一个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包并使用publishsubscribe代替。现在的问题是,我不知道如何在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

0 个答案:

没有答案