根据返回的内容创建字段,meteor pub/sub

Creating fields based on what's returned, meteor pub/sub

可能是个糟糕的标题,我不知道如何准确描述这个。

  Template.body.helpers({
    messages: function () {
      return Messages.find({}, {
        sort: {createdAt: -1}
      });
    }
  });

这是我的代码。 在客户端,需要

{{#each messages}}
  <span class="text"> {{messageText}} </span>
{{/each}}

每条消息包含 "text" 和 "username"。

我将如何着手,在 "return Messages" 部分,修改它 return 的内容?

所以我会做类似的事情

  Template.body.helpers({
    messages: function () {
      Messages.find().forEach(function(thismsg){
        messageText = slugify(thismsg.messageText)
      };
    }
  });

获取消息,修改字段,然后 return。我可以改为在订阅中这样做吗?请帮忙。

您可以在帮助程序中传递您的消息,然后您可以修改消息并像这样传回模板。

您的模板代码。

{{#each messages}}
  <span class="text"> {{slugifyMessage text}} </span>
{{/each}}

你的帮助代码。

Template.body.helpers({
    messages: function () {
      return Messages.find({}, {
        sort: {createdAt: -1}
      });
    }
    slugifyMessage: function(messageText){
       return slugify(messageText);
    }
  });

请确保我传递给 slugifyMessage 的文本与您提到的数据库同名,您只有两个名为用户名和文本的字段,因此我使用了文本,您可以将其替换为您想要的文档字段修改.