我是流星的新手,正在尝试制作一个简单的博客应用程序。但是我的插入功能似乎无法正常工作。这是我的代码。

这是我的模板

<template name="addpost">
  <div class="container">
    <h1> Add New Post</h1>
    <form class="new-post">
      <label class="title">
        Title:
        <input type="text" name="title" placeholder="Type to add new tasks" />
      </label>
      <label class="post-content">
        Write here:
        <input type="text" name="body" placeholder="Type to add new tasks" />
        <button class="add-post">Add Post</button>
      </label>

    </form>
  </div>
</template>


JS文件内容

Posts = new Meteor.Collection("posts");

if (Meteor.isClient) {

  Template.addpost.events({
    "submit .new-post": function(event){

      var title = event.target.title.value;
      var body = event.target.body.value;

      Meteor.call("addPost", title, body);
    }
  });
}


Meteor.methods({
  addPost: function(title, body){
    Posts.insert({
      title: title,
      body: body,
      createdAt : new Date()
    });
  }
});


我尚未删除自动发布和不安全的软件包。下面是mongoDB查询输出。

javascript - MeteorJS插入功能不起作用-LMLPHP

最佳答案

默认情况下,提交表单时,它将发出另一个HTTP请求,该请求将重新加载页面并停止流星正在执行的操作。为避免这种情况,您需要阻止默认操作:

Template.addpost.events({
  submit: function(event) {
    event.preventDefault();
    // the rest of your code goes here
  }
});


除此之外,您的代码对我来说也可以正常工作。您可以使用以下命令进行验证:Web控制台中的Posts.find().fetch()或通过meteor shell

07-24 21:33