MeteorJS插入功能不起作用

时间:2015-09-01 16:47:51

标签: javascript meteor mongodb-query

我是meteor的新手并尝试制作一个简单的博客应用程序。但我的插入功能似乎没有正常工作。这是我的代码。

这是我的模板

<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查询输出。

enter image description here

1 个答案:

答案 0 :(得分:2)

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

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

除此之外,您的代码对我来说正常。您可以使用:Posts.find().fetch()在网络控制台中或通过meteor shell验证它。