首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在meteor中的帖子中插入用户名

在Meteor中的帖子中插入用户名可以通过以下步骤实现:

  1. 首先,确保你已经在Meteor项目中安装了accounts包,该包提供了用户认证和管理的功能。可以使用以下命令安装accounts包:
代码语言:txt
复制
meteor add accounts-base accounts-password
  1. 在你的帖子集合中添加一个字段来存储用户名。可以在Meteor项目中的某个文件中定义一个新的集合,并添加一个字段来存储用户名。例如,可以创建一个名为Posts的集合,并在其中添加一个字段来存储用户名:
代码语言:javascript
复制
Posts = new Mongo.Collection('posts');

Posts.attachSchema(new SimpleSchema({
  title: {
    type: String,
    label: "Title",
    max: 200
  },
  content: {
    type: String,
    label: "Content",
    max: 2000
  },
  username: {
    type: String,
    label: "Username",
    autoValue: function() {
      if (this.isInsert) {
        return Meteor.user().username;
      }
    },
    autoform: {
      type: "hidden"
    }
  }
}));

在上面的代码中,我们使用了SimpleSchema来定义帖子集合的结构,并在其中添加了一个自动计算的字段username来存储用户名。autoValue函数会在插入新帖子时自动设置该字段的值为当前登录用户的用户名。

  1. 在帖子的表单中添加一个隐藏字段来存储用户名。在你的帖子表单中,可以添加一个隐藏字段来存储用户名。例如,可以使用AutoForm包来创建帖子表单,并在其中添加一个隐藏字段来存储用户名:
代码语言:html
复制
<template name="postForm">
  {{#autoForm collection=Posts id="postForm" type="insert"}}
    {{> afQuickField name='title'}}
    {{> afQuickField name='content'}}
    {{> afQuickField name='username' type='hidden'}}
    <button type="submit" class="btn btn-primary">Submit</button>
  {{/autoForm}}
</template>

在上面的代码中,我们使用了AutoForm包来创建帖子表单,并使用afQuickField模板来快速生成表单字段。通过设置type='hidden',我们将username字段设置为隐藏字段。

  1. 在帖子列表中显示用户名。在你的帖子列表中,可以通过查询帖子集合并获取用户名来显示用户名。例如,可以在模板的helper函数中查询帖子集合,并获取用户名:
代码语言:javascript
复制
Template.postList.helpers({
  posts: function() {
    return Posts.find();
  },
  getUsername: function(userId) {
    var user = Meteor.users.findOne(userId);
    if (user) {
      return user.username;
    }
  }
});

在上面的代码中,我们定义了一个helper函数getUsername,该函数接受一个用户ID作为参数,并通过查询Meteor.users集合获取用户名。

  1. 在帖子列表模板中显示用户名。在你的帖子列表模板中,可以通过调用helper函数来显示用户名。例如,可以在模板中使用{{getUsername}}来显示用户名:
代码语言:html
复制
<template name="postList">
  <ul>
    {{#each posts}}
      <li>
        <strong>{{title}}</strong> - {{getUsername createdBy}}
      </li>
    {{/each}}
  </ul>
</template>

在上面的代码中,我们使用了{{#each}}块来遍历帖子列表,并在每个帖子中显示标题和用户名。

通过以上步骤,你就可以在Meteor中的帖子中插入用户名了。这样,每个帖子都会关联到创建它的用户,并在帖子列表中显示用户名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券